簡體   English   中英

通過 jQuery AJAX POST 發送 JavaScript 數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM