我正在使用此函数将json发送到php页面:
function update_records(data) {
data = data;
$.ajax({
type: 'POST',
cache: false,
timeout: 2000,
contentType: 'application/json',
url: 'update.php',
data: data, //'data='+data+'&aid=0',
success: function() {
success_message('success');
},
error: function(){
failure_message('failure');
}
});
在萤火虫中,我可以看到发布的数据:
[{
"postid": 66,
"values": [
"field_key=a",
"oldvalue=b",
"newvalue=c dad"
]
}]
在我的php页面上,我如何$_REQUEST
该对象?或者我做错了吗?
答案 0 :(得分:1)
我确实在我的js
上使用此代码解决了这个问题这是我收集数据的方式 我创建了对象
jsonObj={"postid":postid,"value":value};
var jsonString=JSON.stringify(jsonObj);
现在我使用ajax
发送了该对象$.ajax({
type: 'POST',
url: siteurl+'/wp-content/themes/crm/modules/update_lead.php',
dataType : 'json',
data: {action:actionType,data:data},
});
和目标PHP文件(/wp-content/themes/crm/modules/update_lead.php)
$json=json_decode(stripslashes($_POST['data']), true);
希望这会有所帮助...
答案 1 :(得分:0)
您可以使用json_decode函数将JSON字符串解码为数组。
答案 2 :(得分:0)
JQuery有一个简洁的功能,允许我们读取外部和本地JSON文件。 jQuery.getJSON(网址,[数据],[回调])
此函数的第一个参数是您计划阅读的URL,是必需的。如果需要将数据POST到URL,则使用第二个参数。最后但同样重要的是,回调函数虽然不是必需的,但几乎总是必要的。
答案 3 :(得分:0)
首先,您应该将数据作为“application / json”传递,而不是“application / x-www-form-urlencoded”。
...,
data: JSON.stringify(data),
...,
在服务器端使用json-decode()
将JSON编码的字符串解码为对象。这个函数非常严格,依赖于正确编写的JSON。
它使用您提供的JSON进行了尝试,并且效果很好 例: http://codepad.org/WOH2wGZv
如果只传递一个对象,我建议摆脱周围的方括号。我还要确保“值”以JSON格式而不是字符串传递。这导致以下JSON:
{
"postid":66,
"values":{
"field_key":"a",
"oldvalue":"b",
"newvalue":"c dad"
}
}
答案 4 :(得分:-1)
在PHP方面,使用$_POST['postid']
获取'66'等。如果您在AJAX查询中使用type: 'GET'
,则应该在PHP端使用$_GET['postid']
。