2

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

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

我的问题是,如何使用流程文件中发送的数据?
数组是这样构建的:[key (0/1/2...)] => ["prod_id"]. id 不一样。
我在某处使用$_POST["key"];会工作,但它没有。

如果我可以按原样在进程文件中获取数组,那就更好了。

process.php(真的很基本 - 只是为了检查它是否工作。):

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

4

4 回答 4

2

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

你也可以试试:

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

或者

{ key: [1,2,3] }

阅读更多关于$.post()

于 2012-06-24T14:26:51.240 回答
2

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

于 2012-06-24T14:27:30.453 回答
1

如果要传递数组,则必须“准备”密钥,如下所示:

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

当您想在表单中传递数组并将名称属性设置为“key []”时,您会采用同样的方式。

于 2012-06-24T14:34:58.950 回答
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');
于 2012-06-24T14:48:58.813 回答