0

我设计了一个网站,它将用户输入作为搜索参数,并使用它们通过对 PHP 页面的 AJAX 调用来搜索数据库。在这个 AJAX 调用中,我显然有一些数据(格式化为 JSON 文件),我在 ajax 参数的“成功”部分操作和使用这些数据。这就是问题所在——我希望能够分析用户针对整个数据库群体的数据进行的缩小搜索中的数据。我怎样才能做到这一点?我以为我会再做一次 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 中使用它?

4

1 回答 1

1

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

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

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

于 2012-07-26T19:57:57.740 回答