使用jQuery通过AJAX向PHP发送JSON

使用jQuery通过AJAX向PHP发送JSON,php,jquery,ajax,json,Php,Jquery,Ajax,Json,我尝试使用jQuery AJAX将JSON发送到PHP文件,基本上我尝试的是获取一组子元素的值和id,然后将它们分配给JSON对象,然后通过AJAX将该对象发送到PHP文件,PHP文件将处理该对象并将其输入数据库 这是我的密码 Javascript/jQuery: function test(){ var selects = $('#systems_wrapper').find('.dropDowns'); var newArray = new Array(); sel

我尝试使用jQuery AJAX将JSON发送到PHP文件,基本上我尝试的是获取一组子元素的值和id,然后将它们分配给JSON对象,然后通过AJAX将该对象发送到PHP文件,PHP文件将处理该对象并将其输入数据库

这是我的密码

Javascript/jQuery:

function test(){
    var selects = $('#systems_wrapper').find('.dropDowns');
    var newArray = new Array();

    selects.each(function(){
        var id = $(this).attr('id');
        var val = $(this).val();
        var o = { 'id': id, 'value': val };

        newArray.push(o);
    });

    $.ajax({
            type: "POST",
            url: "qwer.php",
            dataType: 'json',
            data: { json: newArray }
        });

}
PHP:


它创建了文件,但它是完全空白的,你知道它可能是什么吗


先走一步

您可以尝试使用
JSON.stringify()
方法将数组自动转换为JSON。只需传递这个函数的输出

data:  { json: JSON.stringify(newArray) }

希望这对您有所帮助,您应该在ajax帖子上设置contentType。我会使用contentType:“application/json”

您应该使用
json\u encode()
而不是
json\u decode()
!通过这种方式,您将获得json字符串并能够将其写入。

如果要将其保存到文本文件中,则无需使用json\u解码。jQuery是用JSON格式对数组进行编码的,PHP应该直接将该格式写入文本文件。如果要打开该文件并以可用的方式访问数据,请将其内容读入变量,然后对其运行json_decode()。

不要使用数组。
使用以下简单字符串:

var o = '[';
selects.each(function(){
    var id = $(this).attr('id');
    var val = $(this).val();
    o += '{ "id": "'+id+'", "value": "'+val+'" },';    
});
o = o.substring(0,o.length-1);
o += ']';
在ajax中,只需发送字符串“o”

        data: { json: newArray }
在php文件中,只需进行json_解码($json,true)
它将返回一个数组,您可以通过foreach访问该数组

如果要查看数组,请使用var_dump($person)

中,使用
打印($\u POST)调试
检查JS是否正常。而且在你的
$.ajax()中不需要
数据类型:'json'
,我得到一个数组作为回报,数组([0]=>stdClass对象([id]=>mail_1[value]=>150升眼镜蛇(G2))[1]=>stdClass对象([id]=>mail_2[value]=>CPC1518)),我正在努力处理它,我可以像这样访问数组吗,比如,$array[0]['id']?当我打印r($\u POST)时,虽然我得到了这个。。。数组([json]=>[{“id”:“mail_1”,“value”:“150升Cobra(G1)”},{“id”:“mail_2”,“value”:“200升Cobra(G1)”}])您正试图将数组数据结构写入文本格式。@Gutzofter,是的,我想,最后它终于可以工作了,这是一个愚蠢的错误,但对于信息人员来说,这是一个错误!)@杰什就是这么做的。最喜欢的新单词。这可真是一团糟。
        data: { json: newArray }