Ajax发布到PHP返回空数组

时间:2018-04-17 05:05:31

标签: php jquery json ajax

我需要将一个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错误。)

3 个答案:

答案 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成功时显示的数据。