【发布时间】:2011-10-23 06:36:10
【问题描述】:
我有一个 jquery 脚本,它从不同的站点收集数据并通过 ajax 和 php 将其保存到 sql 数据库中。目前,该脚本分别保存来自站点的每个集合。我想更改它,以便脚本收集数组中的所有数据,并在完成收集后将数组传递给 php 文件,该文件会将其保存在数据库中。
我现在的问题是,我无法在“每个循环”之后将数组发送到 ajax 语句。如果我在“每个循环”中发送数组,它可以工作(此时我将数据保存在 php 文件的会话中,以便我可以看到它的结构并可以相应地调整 pdo 语句),但是我有一个在每个“循环”之后发布请求。我想避免这种情况,所以我只有一个 POST 请求,最后是整个数组。但是如果我在“每个循环”之后使用 ajax 发布请求,我得到的数组就是空的。我以为我将数组设为全局,这样我就可以在每个语句之外使用它,但由于某种原因它不起作用。
你知道如何解决这个问题吗?这是脚本:
$('#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;
});
您知道问题可能出在哪里吗?如果您需要更多信息,请告诉我。 非常感谢! :)
【问题讨论】:
标签: jquery ajax arrays json each