[英]send JavaScript array through jQuery AJAX POST
我想要做的是將 JavaScript 數組發送到 PHP 文件。
這是我得到的:
var mydata = [];
console.log(document.getElementsByTagName("input")[0].name);
for (var i = 0; i < document.getElementsByTagName('input').length; i++) {
mydata[document.getElementsByTagName("input")[i].name] = document.getElementsByTagName("input")[i].value;
};
for (var i = 0; i < document.getElementsByTagName('select').length; i++) {
mydata[document.getElementsByTagName("select")[i].name] = document.getElementsByTagName("select")[i].value;
};
console.log(mydata);
$.ajax({
method: "POST",
url: "q.php",
data: {'lol': JSON.stringify(mydata)},
contentType: 'application/json',
dataType: 'json'
})
.done(function( msg ) {
alert( "Data Saved: " + msg );
$('#debug').html(msg);
});
如您所見,我創建了一個帶有循環的數組,此時一切正常。 問題是當我嘗試使用 JSON 通過 POST 發送它時。 我不知道這是不是最好的方法...
我試過沒有JSON.stringify();
但$_POST
仍然是空的
帖子似乎沒有發送,但我可以在控制台中看到 XHR 帖子請求已發送。
嘗試使用此代碼並查看更改。
刪除contentType: 'application/json', dataType: 'json'
並將var mydata = []
更改為var mydata = {}
你的ajax應該是這樣的
$.ajax({ method: "POST", url: "q.php", data: {'lol': mydata} }) .done(function( msg ) { alert( "Data Saved: " + msg ); $('#debug').html(msg); });
您不必對 mydata 進行字符串化,因為您已經將其清除為對象。
希望能幫助到你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.