Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多个AJAX调用的限制?_Javascript_Php_Sql_Ajax - Fatal编程技术网

Javascript 多个AJAX调用的限制?

Javascript 多个AJAX调用的限制?,javascript,php,sql,ajax,Javascript,Php,Sql,Ajax,背景: 我有一个javascript文件,其中有一个AJAX函数调用一个php文件,返回数据并使用它执行一个函数(一个sql查询返回一个设定日期的记录,然后使用googlemapsapi将其绘制在地图上)。让我们把这个数据称为 问题: 我需要的是能够获取接下来几天的数据并将其存储在一个数组中(我们称之为数据B),并将其与第一组数据(数据A)进行比较。 根据我的理解,我需要在这个调用中调用另一个ajax,我尝试了它,但似乎我无法获得数据,我可能对ajax的核心工作有误解。例如: var data_

背景: 我有一个javascript文件,其中有一个AJAX函数调用一个php文件,返回数据并使用它执行一个函数(一个sql查询返回一个设定日期的记录,然后使用googlemapsapi将其绘制在地图上)。让我们把这个数据称为

问题: 我需要的是能够获取接下来几天的数据并将其存储在一个数组中(我们称之为数据B),并将其与第一组数据(数据A)进行比较。 根据我的理解,我需要在这个调用中调用另一个ajax,我尝试了它,但似乎我无法获得数据,我可能对ajax的核心工作有误解。例如:

var data_a;
var data_b;
    $.ajax({
         type: "POST",
         url: scriptday,
         data: $("#dayForm").serialize(),
         error: function( data ) {
              console.log("Error: "+ data );
         },
         success: function( json ) {
              data_a = json
                  //start of inner ajax call
                  $.ajax({
                           type: "POST",
                           url: scriptday2,
                           data: $("#dayForm").serialize(),
                           error: function( data ) {
                                console.log("Error: "+ data );
                           },
                           success: function( json ) {
                                data_b = json
                               // access data_a here
                           }
                       }    
                  });
                  //end of inner ajax call

        }    
    });
编辑: 正确的方法是将内部ajax调用存储在一个函数中,该函数将数据存储在内部

function innerAjax(data_a){
    $.ajax({
       .....
       //data_a can now be used here
    })
}
并在第一个ajax中将其称为

innerAjax(data_a);
以同步方式使用AJAX的方法:)
感谢那些做出贡献的人

否,如果您使用异步AJAX(看起来是这样的),则不存在多个AJAX调用的限制


对于您的问题-可能您需要正确地等待两个ajax调用的结果,以存储结果,然后对其进行处理。

第二个ajax调用传递的参数与第一个相同。您说过您需要获取第二天的数据,因此您需要发送不同的
数据:
参数。为什么不创建一个AJAX调用来返回您需要的所有数据,我没有执行多个调用,而是通过在函数之前设置变量来访问ajax调用之外的数据,但是当我在下面打印出来时,结果却是空的:/any ideas?你不能在一个调用中获得数据吗?使用Json可以轻松返回两个不同的数据集
{“data-a”:{“data”:{……}},“data-b”:{“data”:{……}}}
看起来是这样的(这可能不对,但你明白了)。如果您确实需要AJAX调用,那么Barmar是对的。您没有调用两个不同的脚本。两者都在调用
scriptday
。那么,在ajax调用之前,设置变量并在完成后访问它?我想我必须把它放在success函数中,因为完全在ajax调用之外访问是不起作用的。在函数生成空变量后打印数据a/数据b:/