我知道之前已经问过这个问题,但我无法找到解决方案。我在控制台中有一个js数组: -
[]
0:Object
stock:27
createdtime:"2016-04-08T04:00:00+0000"
id:"693852404037393999"
units:438
1:Object
stock:17
createdtime:"2016-04-04T07:00:00+0000"
id:"341884943444989396"
units:267
创建此数组的代码如下所示: -
var allstock = {
pdata: []
};
allstock.pdata.push({
"stock" : response.stock,
"createdtime" : response.createdtime,
"id" : response.id,
"units" : response.units
});
然后我通过ajax将它发送到php: -
//ADD STOCK DETAIL TO DB
var mydata = 'stockarray='+ JSON.stringify(allstock.pdata);
$.ajax({
type: "POST",
url: 'stocktodb.php',
data: mydata,
success: function(data) {
$('#showarraydata').html(data);
}
});
在我的stocktodb.php文件中,我有这个:
<?php
$myarray = $_POST['stockarray'];
$mydata = json_decode($myarray,true);
echo "<pre>";
print_r($mydata);
echo "</pre>";
?>
但是当它返回/回显时,我只能在屏幕上显示: -
Array
(
)
我认为数组甚至没有进入POST或者数组有问题(尽管它使用json lint验证)。也许与stringify有关,而且我的数组只在控制台中显示[],然后在下面的对象中显示?
我不知所措,尝试了许多不同的事情但却没有快乐。希望有人可以提供帮助。
由于
乔纳森
答案 0 :(得分:2)
尝试更改下面的ajax代码。
//ADD STOCK DETAIL TO DB
$.ajax({
type: "POST",
url: 'stocktodb.php',
data: {stockarray : JSON.stringify(allstock.pdata)},
success: function(data) {
$('#showarraydata').html(data);
}
});