如何使用jQuery的AJAX post request + php发送的数组?

时间:2012-06-24 14:23:50

标签: php javascript jquery ajax arrays

我正在尝试在ajax请求中传递数组,但显然它不起作用...

        $.post("process.php", array,
            function(data) {
                document.getElementById("output").innerHTML = JSON.parse(data);
            });

我的问题是,如何使用过程文件中发送的数据? 该数组的构建方式如下:[key (0/1/2...)] => ["prod_id"]。身份因人而异 我在某个地方使用$_POST["key"];可以使用,但事实并非如此。

如果我能在进程文件中获得数组,那就更好了。

process.php(非常基本 - 只是为了检查它是否有效。):

<?php print($_POST["test"]); ?>

4 个答案:

答案 0 :(得分:2)

您需要构建一个数组元素的对象。例如:

您也可以尝试:

{ 'key[]': [1, 2, 3] }

{ key: [1,2,3] }

详细了解 $.post()

答案 1 :(得分:2)

尝试传递{data: array}而不是array。 AJAX调用需要一个对象。

答案 2 :(得分:1)

如果要传递数组,则必须按如下方式“准备”密钥:

{'key[]' : ['value1', 'value2', 'value3']}

与你想要的方式相同,当你想在表单中传递一个数组并将name-attribute设置为“key []”时。

答案 3 :(得分:1)

为了在php中接收数据,您需要发送键/值对,但是您只发送一个值。

您在php中收到$_POST[key],它将返回该密钥的值。

JS:

$.post("process.php", {myAray: array}, function(data) {
            $("#output").html(data);
});

PHP

   $array= $_POST['myArray'];

要从php中返回此数组作为文本只是为了测试你的ajax可以使用var_dump( $_POST)var_dump($array);

如果您打算从服务器接收JSON以响应,则不需要使用JSON.parse,jQuery将在内部解析json。但是,您需要将“json”作为dataType参数添加到$ .post

$.post("process.php", {myAray: array}, function(data) {
            /* loop over json here*/
},'json');