使用jQuery通过AJAX向PHP发送JSON
我尝试使用jQuery AJAX将JSON发送到PHP文件,基本上我尝试的是获取一组子元素的值和id,然后将它们分配给JSON对象,然后通过AJAX将该对象发送到PHP文件,PHP文件将处理该对象并将其输入数据库 这是我的密码 Javascript/jQuery:使用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
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 }