这里我使用的是简单的html + jquery + ajax文件 ajax代码在这里
var email = "am3042208007@gmail.com";
var username = "ankur_07";
var password = "pass07";
var phone_no = "7676715797";
var datastring = {
"email": email,
"username": username,
"password": password,
"phone_no": phone_no
};
$.ajax({
type: "POST",
url: "../test/testreg.php",
data: {datastring : JSON.stringify(datastring)}, //with the page number as a parameter
dataType: 'html', //expect html to be returned
async: false,
success: function (data) {
alert(data);
/*if(data=="hello"){
message = "Mail Sent Successfully";
} else {
message = "Oops, mail doesn't send.!!!";
}
alert(message);*/
}
});
return false;
我从这个文件和ant发送json以获取另一个testreg.php
文件
但它没有解码json在echo
中使用下面的行显示
{\"email\":\"am3042208007@gmail.com\",\"username\":\"ankur_07\",\"password\":\"pass07\",\"phone_no\":\"7676715797\"}
if(isset($_POST['datastring']))
{
$data = $_POST['datastring'];
$data = json_decode($data);
print_r($data);
}
请帮我解决这个问题..
答案 0 :(得分:2)
替换
data: {datastring : JSON.stringify(datastring)},
通过
data: {datastring : datastring},
说明:
您没有发送JSON。您发送转义字符串(删除了JSON格式),因为您使用JSON.stringify
。
答案 1 :(得分:0)
你不期望结果成为php关联数组吗?你不忘记在json_decode函数中提供第二个参数(true)吗?因为如果你这样做,json_decode会将结果作为对象返回。
答案 2 :(得分:-1)
您必须从帖子数据中删除斜杠\
并解码json。
请尝试使用此
$data = json_decode(stripslashes($data), true);
注意:请确保在这种情况下stripslashes()
也会移除您的转义序列。