Post对象数组的对象(jQuery/PHP)


Post an object of arrays of objects (jQuery/PHP)

我正在寻找一种方法,张贴在jQuery对象数组的对象到PHP文件,并解码它。

我试过了:

jQuery

myTab1[0] = {a: 2, b: 3};
myTab1[1] = {a: 1, b: 1};
myTab2[0] = {a: 42, b: 43};
myTab2[1] = {a: 15, b: 17};
var info = {id: 57,
            title: 'myTitle',
            tab1: JSON.stringify(myTab1),
            tab2: JSON.stringify(myTab2)
           };
$.post('save.php', info);
PHP

$tab1 = json_decode($_POST['tab1'])
echo count($tab1); // always 1, whatever myTab1

你有什么主意吗?

确保您正在使用count上的东西是一个数组,通过您的代码似乎您正在计算json_decode的结果,这是一个对象。在这里使用count将无法按预期工作。

注意,PHP作为count的一个小问题是false:如果你做count(false),它将返回"1",所以确保你是计数存在的东西,是一个数组。

同样,尝试使用第二个参数通过传递"true"来指定你想要的数组

$tab1 = json_decode($_POST['tab1'],true);

或者在解码

时将其转换为数组

$tab1 = (array)json_decode($_POST['tab1']);