通过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()
它。