我有一个不同链接的数据库,我想去获取这些链接并将内部放入一个数组。
我尝试使用以下代码:
var amz=new Array();
function CreaArrayAmazon()
{$.ajax({
url: "php/amazon_affiliate.php",
success: function(data){
var leanamazon = JSON.parse(data);
for (i=0; i<leanamazon.length; i++)
{amz[i]=leanamazon[i].Link
}
}
})
}
我希望找到“amz”数组中的所有链接,因为它是一个全局变量,而只有在它位于AJAX函数内时才保存链接。如果我在AJAX函数中插入一个“alert”(例如alert(amz[i])
),我可以正确地看到数据,相反,如果我在外面插入一个警报,我看不到任何东西,事实上amz数组结果是empity。
有人能告诉我把那些数据带出去吗?
你可能误解了这里发生了什么。
AJAX代表异步Javascript和XML。异步意味着您的代码并不总是按顺序运行。
在这种情况下,您的程序功能如此../
function CreaArrayAmazon()
{
// Step 1: Make the Call
$.ajax({
url: "php/amazon_affiliate.php",
success: function(data){
// Step 3: When the call succeeds, execute the rest of this inner function.
var leanamazon = JSON.parse(data);
for (i=0; i<leanamazon.length; i++)
{amz[i]=leanamazon[i].Link
}
}
})
// Step 2: Continue Processing....
}
第2步发生在第3步之前。当你的AJAX调用完成时,Javascript已经完成了你的CreaArrayAmazon
调用。
相反,您需要让内部函数(步骤3)调用外部函数来响应您收到的新数据。