如何使用与jQuery的AJAX postrequest + php一起发送的数组


How to use an array sent with an jQuery's AJAX post request + php?

我正在尝试在 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"]); ?>

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

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

您也可以尝试:

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

{ key: [1,2,3] }

阅读更多关于 $.post() 的信息

为了在 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"作为数据类型参数添加到$.post中

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

如果你想传递一个数组,你必须"准备"密钥,如下所示:

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

就像你想在表单中传递数组并将 name-attribute 设置为 "key[]" 时,你会这样做。