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

时间:2014-10-07 10:51:16

标签: javascript php jquery arrays ajax

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

我正在开发更大的网络应用程序。现在在应用程序的一个部分中,我使用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()

3 个答案:

答案 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()它。