通过jquery ajax请求传递数组?

时间:2012-07-12 15:14:34

标签: jquery ajax arrays

尝试使用ajax请求将数组传递给php页面。当前响应为ction Array() { [native code] },而不是实际的数组内容(im positive不为空)。这是我的代码:

    function GetPaginationPage(array1) {
    var jsonString = JSON.stringify(array1);

    $.ajax({
        type: "POST",
        url: "includes/get_pagination_page.php",
        data: {data : jsonString},
        success: function(data){ 
        $('.contestants_list').append(data);
        }
        });
};

用json更新,现在传递'undefined'

3 个答案:

答案 0 :(得分:1)

这里没有理由使用JSON.stringify。只需将数组正常发送给PHP。

function GetPaginationPage(array1) {
    $.ajax({
        type: "POST",
        url: "includes/get_pagination_page.php",
        data: {
            data: array1
        },
        success: function (data) {
            $('.contestants_list').append(data);
        }
    });
}

现在在PHP中,$_POST['data']将是一个数组。

更新:你说你这样叫GetPaginationPage

GetPaginationPage(<?php echo $contestants_array; ?>);

您需要将其更改为:

GetPaginationPage(<?php echo json_encode($contestants_array); ?>);

当您在PHP中echo数组时,它会转换为字符串"Array",该字符串由JavaScript作为Array对象进行编程。

答案 1 :(得分:0)

在传递数组之前将数组转换为字符串,如下所示:

array1.join(',');

或者,如果它是一个复杂的数组,请考虑JSON:

JSON.stringify(array1);

答案 2 :(得分:0)

我这样做的方法是在JavaScript中创建数组作为分隔(〜)字符串&amp;然后我使用explode php函数加载到数组中。