【问题标题】:send JavaScript array through jQuery AJAX POST通过 jQuery AJAX POST 发送 JavaScript 数组
【发布时间】:2015-05-29 02:07:02
【问题描述】:

我想要做的是将 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 帖子请求已发送。

【问题讨论】:

  • 你说:“但同样的错误发生”。错误是什么?你能提供错误信息吗?
  • 您看到的 POST 包含您需要的数据?我认为 JSON.stringify 不是必需的。您收到响应错误或 javascript 错误?
  • EDIT $_POST 是空的,我试过没有 JSON.stringify 但它仍然是空的。
  • mydata 变量包含的内容编辑您的问题
  • 好的@Bankzilla。给我一点时间

标签: javascript php jquery ajax json


【解决方案1】:

尝试使用此代码并查看更改。

删除 contentType: 'application/json', dataType: 'json'

并将var mydata = [] 更改为var mydata = {}

你的 ajax 应该是这样的

$.ajax({ 方法:“POST”, 网址:“q.php”, 数据:{'lol': mydata} }) .完成(功能(味精){ alert("数据保存:" + msg); $('#debug').html(msg); });

您不必对 mydata 进行字符串化,因为您已经将其作为对象取消了。

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2013-04-22
    • 1970-01-01
    • 2016-12-04
    • 2013-01-09
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    • 2012-01-24
    • 2017-09-20
    相关资源
    最近更新 更多