我必须通过ajax / jQuery将php多维数组传递给另一个php文件。 我已使用编码数组 我期望数组中的每个项目本身都是一个数组。而是返回[Object object]。 如何使用php访问数据?
这是我的代码:
在第一个php文件中:
<script type="text/javascript">
var arr_data = <?php echo json_encode($itemsData); ?>;
$("#confirmButton").click(function(){
$.post("send_test.php", {"my_array_data[]":my_array_data}, function( data ) {
alert(data);
});
});
</script>
另一个php文件:
<?php
$my_array_data = $_POST['my_array_data'];
?>
如果我尝试检索第一行($my_array_data[0]
),我会[Object object]
我只想访问$my_array_data[0]['category']
等。
答案 0 :(得分:0)
您将json编码的数据放入arr_data
javascript变量中 - 但是您似乎并未将其发送到其他php文件。
在其他 php文件中,尝试对您在POST请求中接收的数据使用json_decode
:
$my_array_data = json_decode($_POST['my_array_data']);
答案 1 :(得分:0)
是的,正如Aric所说,名字阵列一直是这样的:
var my_arr_data = <?php echo json_encode($itemsData); ?>;
答案 2 :(得分:0)
这里有几个错误:
[]
my_array_data
像这样重做你的代码:
<强> PHP 强>
$itemsData = array(
array(
"test" => 30,
"test2" => 10,
),
array(
"test" => 90,
"test2" => 50,
)
);
<强> JS 强>
var arr_data = <?php echo json_encode($itemsData); ?>;
$("#confirmButton").click(function () {
$.post("send_test.php", {my_array_data: arr_data}, function (data) {
console.log(data);
});
});
然后在 send_test.php
$data = $_POST['my_array_data'];
print_r($data);
结果:
Array
(
[0] => stdClass Object
(
[test] => 30
[test2] => 10
)
[1] => stdClass Object
(
[test] => 90
[test2] => 50
)
)