jquery ajax json语句外的空数组



我有一个jquery脚本,从不同的网站收集数据,并通过ajax和php保存到sql数据库。目前,脚本分别保存来自站点的每个集合。我想改变这一点,使脚本收集所有的数据在一个数组,当它完成收集它传递数组上的php文件,这将保存在数据库中。

我现在的问题是,我不能发送数组后的"每个循环"的ajax语句。如果我发送数组内的"每个循环"它的工作(目前我保存的数据在一个会话上的php文件,这样我就可以看到它的结构,并可以相应地调整pdo语句),但然后我有一个post请求后,每个"循环"。我想避免这种情况,这样我就只有一个POST请求与整个数组在最后。但是如果我在"每个循环"之后使用ajax post请求,我得到的数组就是空的。我以为我把数组设为全局的,这样我就可以在每个语句之外使用它,但由于某种原因,它不起作用。

你知道如何解决这个问题吗?脚本如下:
$('#ScanButton, .ScanButton').click(function() {
var array = ["http://www.xyz.com/bla/bla/summary.html",
             "http://www.xyz.com/blu/blu/summary.html",
            ];
dataArray = [];
$.each(array, function(n, val) { 

$.get(val, function(res) { //get the html source of this website
  var data = {
  }
  dataArray.push(data);

//如果我使用$。这里的Ajax语句,它工作,并提交了一个正确的数组。但然后我有一个POST请求与每个循环。});

});

//If I use the $.ajax here, the array I get is just empty. Any Idea how to solve this?
data = YAHOO.lang.JSON.stringify(dataArray);      

  $.ajax({
    type:           'post',
    cache:          false,
    url:            'test.php',
    data:           {myJson:  data}
    });
  return false;
  });

你知道问题出在哪里吗?如果你需要更多的信息,请告诉我。非常感谢!:)

[Edit] lol我是个白痴,无论如何,你的数组是空的原因是因为get请求是异步的,并且可能在你发送你的最终数组之前没有完成。要么让get同步(可能不是您想要的),要么等到所有get完成后再发送最后一个数组。

最新更新