多个AJAX调用和JSON数据

时间:2012-07-26 19:40:30

标签: javascript json ajax

我设计了一个网站,它将用户输入作为搜索参数,并使用它们通过对PHP页面的AJAX调用来搜索数据库。在这个AJAX调用中,我显然有一些数据(格式化为JSON文件),我在ajax参数的“success”部分操作和使用。 这就是问题 - 我希望能够分析用户放入的缩小搜索中的数据与整个数据库群体中的数据。我怎样才能做到这一点? 我以为我只会做另一个AJAX调用,但来自该调用的数据似乎无法从外部访问,我找不到任何方法在调用之外“导出”它。 以下是代码的缩写版本:

$.ajax({
    url: URL for the search .php,
    cache: false,
    data: {
            Various search parameters by the user
        },
    dataType:"json",
    success:function(data){
       Data manipulation and reading the resulting JSON
       $.ajax({
            url:URL2 for the population .php,
            cache: false,
            dataType:"json",
            success:function(data){
                population data stuff here
            },
            error: error stuff


    }
        error: error stuff
}

到目前为止,这是我知道访问数据库的唯一方法。我怎么能以某种方式从第二个AJAX中提取数据,以便我可以在第一个AJAX中使用它?

1 个答案:

答案 0 :(得分:1)

由于您使用异步回调,因此无法从第二个调用中“提取”数据并在第一个调用中使用它。您需要做的是进行两次调用并使用第二次调用成功回调中的每个数据。如果将正在使用的变量重命名为成功回调函数,则可以执行此操作。

$.ajax({
    url: /**/,
    success:function(response1){
       $.ajax({
            url: /**/,
            success:function(response2){
                /* use both response1 and response2 here */
            },
            error: /**/
       })
    },
    error: /**/
})

如果您没有使用第一个ajax调用中的数据进行第二次ajax调用,您可以使用类似jQuery.when的内容来等待两个请求完成。