使用jQuery通过AJAX将JSON发送到PHP

我正在尝试使用jQuery AJAX将JSON发送到PHP文件,基本上我要做的是获取一堆子元素的值和id,然后将它们分配给JSON对象,然后通过ajax将该对象发送到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:

  

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

Thanx提前!

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

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

希望这可以帮助

不要使用数组。
使用这样的简单字符串:

 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_decode($ json,true);
它将返回一个数组,您可以通过foreach访问它
如果要查看数组,请使用var_dump($ person);

您应该在ajax POST上设置contentType。 我会使用contentType:“application / json”;

你应该使用json_encode()而不是json_decode() ! 这样你就可以获得json字符串并能够编写它。

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