我有一个具有不同链接的数据库,我想获取这些链接并将其放入数组中。
我尝试使用以下代码:
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(amz[i])
)中插入“警报”,则可以正确看到数据,相反,如果在外部看不到任何内容的警报插入,则将amz数组结果保留为事实
有人可以告诉我从那里取出数据吗?
答案 0 :(得分:1)
您可能会误解这里发生了什么。
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步)调用外部函数以对收到的新数据做出反应。