我有一個jquery腳本,它從不同的站點收集數據,並通過ajax和php將其保存到sql數據庫中。目前該腳本單獨保存每個網站的收藏。我想改變它,以便腳本收集數組中的所有數據,並在完成收集時將數組傳遞給PHP文件,將其保存到數據庫中。每個語句之外的空數組jquery ajax json
我現在的問題是,我無法將「每個循環」之後的數組發送到ajax語句。如果我在「每個循環」中發送數組,它就會工作(此時我將數據保存在php文件的會話中,以便我可以看到它的結構並可以相應地調整pdo語句),但是然後我有一個在每個「循環」之後發佈請求。我想避免這種情況,以便在最後使用整個數組只有一個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);
//如果我在這裏使用了$就聲明,它的工作原理和正確的陣列被提交。但後來我有一個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;
});
你有任何想法,問題可能是什麼?如果您需要更多信息,請告訴我。 非常感謝! :)
你的例子基本上就像我的。我通過獲取$來更改變量dataArr。然後我得到一個「未定義」在螢火蟲,仍然是一個空陣列..我猜未定義出現,因爲我沒有取消$全球dataArr。 ..所以我仍然有同樣的問題。順便說一句:在你的例子中,每個循環都缺少..;)謝謝你的幫助! – Sebsemillia
@sebsemilla你不希望它是全局的,只是在每個循環的範圍之外聲明。你不應該把它附加到jQuery對象。 – Andrew
我改變了我的問題中的腳本,就像我現在根據你的建議改變它。但我仍然得到一個空陣列..也許你看到我忽略了一個錯誤..謝謝! – Sebsemillia