PHP复选框是另一组名称的组

时间:2013-07-05 18:03:10

标签: php html

请仔细阅读,因为它甚至不容易解释。 我有一个包含具有相同名称的各种输入的表单。 这就是我将它们分组的原因,如下例所示:

<input class="" type="text" name="photoname[]"/>
<input class="" type="text" name="photodescription[]"/>
<input value="121001392" name="protagonist[][]" type="checkbox"/>
<input value="121001393" name="protagonist[][]" type="checkbox"/>
<input value="121001394" name="protagonist[][]" type="checkbox"/>
<input value="121001395" name="protagonist[][]" type="checkbox"/>

现在团队工作正常。 问题是复选框,因为那些应首先与其他输入字段的索引分组,然后具有自己的索引。这就是为什么对于beckboxes我尝试使用这样的双组[][] 但是给定的数组是错误的,并且复选框没有以正确的方式分组。 这是结果:

Array
(

    [photoname] => Array
        (
            [0] => 8e98ee38864e74a9d5abf45edb263b8f
            [1] => 16fb2761e8cbe6eb877b2af8a95441dd
        )

    [protagonist] => Array
        (
            [0] => Array
                (
                    [0] => 121001392
                )

            [1] => Array
                (
                    [0] => 121001393
                )

            [2] => Array
                (
                    [0] => 121001394
                )

            [3] => Array
                (
                    [0] => 121001395
                )

        )

    [photodesc] => Array
        (
            [0] => example
            [1] => example
        )

)

但预期结果应如下:

Array
(

    [photoname] => Array
        (
            [0] => 8e98ee38864e74a9d5abf45edb263b8f
            [1] => 16fb2761e8cbe6eb877b2af8a95441dd
        )

    [protagonist] => Array
        (
            [0] => Array
                (
                    [0] => 121001392
                    [1] => 121001393

                )

            [1] => Array
                (
                    [0] => 121001394
                    [1] => 121001395
                )

    [photodesc] => Array
        (
            [0] => example
            [1] => example
        )

)

在预期结果中,第一个索引是表单中所有其他输入的索引,子索引是每个所选复选框的索引。通过这种方式,我能够循环数组并根据父索引分配选中的复选框...如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

当您在动态创建二维数组中的元素时,您获得的行为与使用[][]时的预期完全匹配。如果您没有指定第一个索引,则每次都会自动为第一个索引创建一个新值。

如果您需要对这些值进行分组,则需要指定第一个索引

<input value="121001392" name="protagonist[0][]" type="checkbox"/>
<input value="121001393" name="protagonist[0][]" type="checkbox"/>
<input value="121001394" name="protagonist[1][]" type="checkbox"/>
<input value="121001395" name="protagonist[1][]" type="checkbox"/>

答案 1 :(得分:0)

<input class="" type="text" name="photoname[]"/>
<input class="" type="text" name="photodescription[]"/>
<input value="121001392" name="protagonist[0][]" type="checkbox"/>
<input value="121001393" name="protagonist[0][]" type="checkbox"/>
<input value="121001394" name="protagonist[1][]" type="checkbox"/>
<input value="121001395" name="protagonist[1][]" type="checkbox"/>

您需要为群组命名。 []表示同一群组中的多个值。但是[][]不起作用。必须是[group1][][group2][]