使用jQuery和AJAX将多维数组传递给PHP

时间:2013-08-16 13:56:34

标签: php jquery ajax

我有jQuery代码:

$(document).ready(function() {

answers = new Array();

answers[0] = new Array();
answers[0]['question_id'] = 12;
answers[0]['answer_id'] = 32;

answers[1] = new Array();
answers[1]['question_id'] = 55;
answers[1]['answer_id'] = 132;

answers[2] = new Array();
answers[2]['question_id'] = 987;
answers[2]['answer_id'] = 1112;

$.ajax({
    type: "POST",
    url: "collect.php",
    data: {answers: answers},
    dataType: "json",
    beforeSend:function(){
        // Do something before sending request to server
    },
    error: function(jqXHR, textStatus, errorThrown){

        alert(errorThrown);
    },
    success: function(data){

        alert('success!');
    }
});

});

现在,这应该有用吗?根据我在寻找代码示例时发现的内容。问题是,我不知道如何收集PHP文件中的数据。我的意思是,这是一个$ _POST [],但那又怎么样?如何收集$ result [0] ['question_id']和所有其他数据?

提前多多感谢,

Carl C. Carlsson

3 个答案:

答案 0 :(得分:3)

你实际上从来没有用数据填充answers数组中的数组,它们的长度仍为0,因为你使用的是字符串索引而不是int索引。你真正想要的是存储在你的数组中的对象。

answers[0] = {};
answers[0]['question_id'] = 12;
answers[0]['answer_id'] = 32;

答案 1 :(得分:1)

您可以使用$_POST['answers']在php页面中收集值。然后,您可以使用数据循环遍历该数组。

答案 2 :(得分:1)

通过将Javascript更改为:

来解决
answers = {};

然后我可以通过以下方式访问PHP中的数据:

$_POST['answers'][1]['answer_id'];
例如

,或者只是循环遍历它。

感谢您的帮助,女士们,先生们。