我找不到任何合适的答案,所以我问了一个新问题。
我正在开发更大的网络应用程序。现在在应用程序的一个部分中,我使用jQuery从现有表(<table class="myContent">...</table>
)收集数据。代码在这一点上并不重要。
会发生什么,我创建了一个包含内容的数组,它运行正常。内容看起来像
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
)但是如果我在php中print_r($_POST['data']['artikel']);
,我只获得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()
。
答案 0 :(得分:3)
因此,您只收到31个完整的数组元素,而第32个元素只有7个项目。 每个元素有32个项目。
31 x 32 = 992
992 + 7 = 999
max_input_vars的默认值为1000。 也许我错过了一个......
尝试将max_input_vars增加到2000并查看是否有任何更改。
答案 1 :(得分:0)
您将数据发布为原始数组。而不是尝试将JSON对象解析为字符串。例如:
$.post('php/_includes/_ajaxIncludes/ajax.inc.container.php',
{
section: 'save',
data: JSON.stringify(myArray)
});
然后将此字符串解析为json对象。我知道这不是你问题的答案,但这可能对你有帮助。
答案 2 :(得分:0)
如果在PHP中创建数组,请使用serialize()
并将其作为字符串传递。然后deserialize()
它。