【发布时间】:2015-01-25 13:38:17
【问题描述】:
我正在尝试将 JSON 对象发送到 .php 文件。困扰我的是我的 POST 值似乎没有进入 PHP 的 $_POST 数组。这是我的代码:
jQuery:
$("#submit").click(function(){
var obj = { //create json object to be sent
"name": $("#name").val(),
"email": $("#email").val(),
"r1": $("#r1").val(),
"r2": $("#r2").val(),
"r3": $("#r3").val(),
"intr1": $("#q1").val(),
"intr2": $("#q2").val(),
"intr3": $("#q3").val(),
"set": "set1"
};
var jsonObj = JSON.stringify(obj);
$.post(
"updateAnswers.php",
jsonObj,
function() {
//location.href = 'set2.php';
}
);
})
PHP:
if (isset($_POST["jsonObj"])) { // value is empty
$obj = json_decode($_POST['jsonObj'], true);
$name = $obj['name'];
$email = $obj['email'];
$db = mysqli_connect("localhost", "root", "", "concurs");
$sql="INSERT into players values ('$name', '$email', '0', '0', '0')";
mysqli_query($db, $sql);
}
提前致谢!
【问题讨论】:
-
我认为您不需要对
obj进行字符串化 - 尝试将其直接传递给$.post函数。 -
尝试
var_dump()或print_r()第一个 $_POST 数组并检查您从脚本中得到了什么。 -
是的,这就是我的建议。
-
没有名为
jsonObj的键,因为这只是JS变量的名称,与PHP无关。了解客户端和服务器端之间的区别 -
在下面查看我的完整答案。一旦你删除了字符串化的东西,你的 PHP 端仍然有问题。