通过jQuerys $ .post传递数组会减少位置

我找不到任何合适的答案,所以我问了一个新问题。

我正在开发更大的Web应用程序。 现在在应用程序的一个部分中,我使用jQuery从现有表(

...

)收集数据。 代码在这一点上并不重要。

会发生什么,我创建一个包含内容的数组,它工作正常。 内容看起来像

 Array ( [artikel] => Array ( [0] => Array ( [id] => 602145-69430 [name] => Legraphic 2 Top [farbe] => Cashmere Blue mix [menge] => 0 [epreis] => 25.95 [gpreis] => 0.00 [uvp] => 64.90 [grt1] => XS [grt2] => S [grt3] => M [grt4] => L [grt5] => XL [grt6] => XXL [grt7] => 0 [grt8] => 0 [grt9] => 0 [grt10] => 0 [grt11] => 0 [grt12] => 0 [gr1] => [gr2] => [gr3] => [gr4] => [gr5] => [gr6] => [gr7] => [gr8] => [gr9] => [gr10] => [gr11] => [gr12] => [ldate] => LD: 01.02.2015 - 28.02.2015 ) [1] => Array ( [id] => 602145-60430 [name] => Legraphic 2 Top [farbe] => Cashmere Blue [menge] => 0 [epreis] => 25.95 [gpreis] => 0.00 [uvp] => 64.90 [grt1] => XS [grt2] => S [grt3] => M [grt4] => L [grt5] => XL [grt6] => XXL [grt7] => 0 [grt8] => 0 [grt9] => 0 [grt10] => 0 [grt11] => 0 [grt12] => 0 [gr1] => [gr2] => [gr3] => [gr4] => [gr5] => [gr6] => [gr7] => [gr8] => [gr9] => [gr10] => [gr11] => [gr12] => [ldate] => LD: 01.02.2015 - 28.02.2015 ) 

等等。 现在创建这个数组之后,我发送它就像

 $.post('php/_includes/_ajaxIncludes/ajax.inc.container.php', { section: 'save', data: myArray }); 

我调用ajax.inc.container.php并在该文件中包含一个名为save.php的文件。 我可以通过更改section-parameter来切换inc文件。

现在问题在于:

创建的数组有例如。 artikel 40个位置(甚至更多)(我做了console.log(myArray);就在$.post之前)但是如果我print_r($_POST['data']['artikel']); 在PHP中,我只获得31个职位,最后一个职位甚至没有完成。 好像

 [31] => Array ( [id] => 602147-69430 [name] => Leblock 1 Blouse [farbe] => Cashmere Blue mix [menge] => 0 [epreis] => 35.95 [gpreis] => 0.00 [uvp] => 89.90 ) 

有人知道为什么会这样吗?

其他信息:

post_max_size 64M

编辑

显然失败来自于jquery。

如果我将.done().fail()$.post()并返回响应console.log(response); 如果有超过30个职位,他会fail()

因此,您只收到31个完整的数组元素,而第32个元素只有7个项目。 每个元素有32个项目。

31 x 32 = 992

992 + 7 = 999

max_input_vars的默认值是1000.也许我错过了一个……

尝试将max_input_vars增加到2000并查看是否有任何更改。

您将数据发布为原始数组。 而不是尝试将JSON对象解析为字符串。 例如:

 $.post('php/_includes/_ajaxIncludes/ajax.inc.container.php', { section: 'save', data: JSON.stringify(myArray) }); 

然后将此字符串解析为json对象。 我知道这不是你问题的答案,但这可能会对你有所帮助。

如果在PHP中创建数组,请使用serialize()并将其作为字符串传递。 然后deserialize()它。