duanchuaiwan0063 2014-03-18 09:24
浏览 26
已采纳

PHP返回空POST数组

JavaScript jQuery post:

var animals = {
    animalsArray: [],
    tripId: <?php echo $_GET['id']; ?>
};

$('.student-check').each(function() {
    animals.animalsArray.push($(this).attr('id'));
});

var sendMe = JSON.stringify(animals);

$.post("saveChanges.php", sendMe, function(response) {
    console.log(response);
}, "json");

PHP handler:

echo json_encode(print_r($_POST, true));
// Array
// (
// )

Why is the array empty? I'm posting data but the response returns an empty array.

  • 写回答

1条回答 默认 最新

  • duanqiao1947 2014-03-18 09:27
    关注

    You are encoding the data as JSON, which isn't a format PHP handles natively for form submissions.

    Remove var sendMe = JSON.stringify(animals); and pass animals to $.post instead of sendMe. jQuery will encode it using one of the standard formats supported by HTML forms and PHP.

    Alternatively see this question for how to get the raw request body.


    Also:

    echo json_encode(print_r($_POST, true));
    

    json_encode and print_r are both functions that take a data structure and express it as a string. Use one or the other, not both.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?