我现在尝试了很多次,使用不同的方法,但没有一种方法适合我,所以我问这个问题。
我有一个小表格,其中包含4条信息,一个人名,名字,中间名和姓。当我点击一个按钮时,会形成一个JSON对象,并通过jQuery.ajax方法作为发布数据发送。
JSON发送到PHP文件:
{
"title": "Mr",
"firstName":"Banana",
"middleName":"Slippy",
"lastName":"McDougle"
}
按下按钮时调用Ajax:
function insertPerson(obj, callback){
$.ajax({
type: "POST",
data: "json=" + JSON.stringify(obj),
url: "insertData.php",
success: function(obj){
if (callback){ callback(obj) };
},
error: function(error){
console.log("Error:");
console.log(error);
}
});
}
我传入一个Javascript对象,然后将其变为stringyfied并作为参数名称'json'发布。
在我的php文件中,我将发布的字符串分配给变量,名为$ json,然后使用json_decode()进行解码,做一些时髦的业务,并将响应发送回浏览器。
insertData.php:
require ('connect.php');
header('Content-type: application/json');
$json_string = $_POST['json'];
$json = json_decode($json_string);
...do server related inserts/selects etc...
echo json_encode($json->title);
目前我只想返回在post请求中发送的json对象的title属性,但是我返回的任何内容都返回null。如果我回显字符串,而不解码它,那么我得到以下内容:
{\"title\":\"Mr\",\"firstName\":\"Banana\",\"middleName\":\"Slippy\",\"lastName\":\"McDougle\"}
如果我尝试使用以下方法提取值: $ title = $ json-> title; 并将其放入MYSQL语句中,它被插入为null或空白,没有任何内容被输入。
我做错了吗?或者我有一个过时的PHP版本来处理JSON?非常感谢帮助。
答案 0 :(得分:1)
为什么要将JSON发送到PHP脚本?使用查询字符串有什么问题?
$.ajax({
type: "POST",
data: obj,
url: "insertData.php",
success: function(obj){
if (callback){ callback(obj) };
},
error: function(error){
console.log("Error:");
console.log(error);
}
});
这会将obj
转换为查询字符串,然后您可以$_POST['firstName']
和$_POST['lastName']
。
答案 1 :(得分:0)
我认为这是最好的拍摄对象。