我正在尝试在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"]);
?>
答案 0 :(得分:2)
答案 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');