如何将数据传递出AJAX函数

问题描述 投票:-1回答:1

我有一个不同链接的数据库,我想去获取这些链接并将内部放入一个数组。

我尝试使用以下代码:

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。

有人能告诉我把那些数据带出去吗?

javascript php ajax
1个回答
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)调用外部函数来响应您收到的新数据。

© www.soinside.com 2019 - 2024. All rights reserved.