我需要将一个json对象从JS传递给PHP,它会传递,但结果是一个空数组。
'adopt.php'中的Ajax请求:
var info = JSON.stringify(filteredArray);
$.ajax({
type: 'POST',
url: 'ajax.php',
data: {'info': info},
success: function(data){
console.log(data);
}
});
ajax.php代码:
if(isset($_POST['info'])){
$_SESSION['array'] = $_POST['info'];
}
回到adop.php,稍后:
if(isset($_SESSION['array'])){
$arr = $_SESSION['array'];
echo "console.log('information: ' + $arr);";
}
在两个console.logs中,它返回一个空对象。有人知道是什么原因引起的吗? (我试过传递json而不用字符串化它,但每当我这样做时它会抛出一个jquery错误。)
答案 0 :(得分:2)
尝试下面的代码,我想你错过了回复ajax回复
<强> adopt.php 强>
<script>
var info = JSON.stringify(filteredArray);
$.ajax({
type: 'POST',
url: 'ajax.php',
data: {info: info},
success: function(data){
console.log(data);
}
});
</script>
<强> ajax.php 强>
if (isset($_POST['info'])) {
$_SESSION['array'] = $_POST['info'];
echo json_encode(["result" => "success"]);
}
答案 1 :(得分:1)
要从PHP获取响应数据,您需要回显数据以将其返回到浏览器。
在你的ajax.php中:
if (isset($_POST['info'])) {
$_SESSION['array'] = $_POST['info'];
echo json_encode(['result' => $_SESSION['array']]);
}
答案 2 :(得分:0)
你的ajax.php没有返回任何数据。要在成功时获取数据,你需要回显你想要在ajax成功时显示的数据。