繁体   English   中英

发送前合并帖子数据

[英]Combine post data before sending

我有一个表格,可以在其中填写多个字段。 字段的数量不是固定的,而是取决于用户的输入。

简化形式:

<form method="POST" action="post.php">
    Field one: <input type="text" name="field[]" /><br />
    Field two: <input type="text" name="field[]" /><br />
    Field three: <input type="text" name="field[]" /><br />

    <br /><br />

    Checkbox one: <input type="checkbox" name="check[]" value="1" /><br />
    Checkbox two: <input type="checkbox" name="check[]" value="1" /><br />
    Checkbox three: <input type="checkbox" name="check[]" value="1" /><br />

    <br /><br />

    <input type="submit" value="Submit" />
</form>

我面临的问题是, field one应该与checkbox one配对, twotwo配对,依此类推。 这听起来很难,对吗? 如果检查并填写了所有内容,则不是:

Array
(
    [field] => Array
        (
            [0] => one 
            [1] => two
            [2] => three
        )

    [check] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 1
        )
)

在PHP中,我可以将数组索引链接在一起,一切都很好。 我面临的问题是当您不选择第二个复选框时。 如果这样做,则check post data中的条目将少一个:

Array
(
    [field] => Array
        (
            [0] => one 
            [1] => two
            [2] => three
        )

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

处理这种情况的最佳方法是什么? 不能选择Ajax提交,但是可以使用JavaScript。

我在想某种方法可以在JS中为每个元素(一个,两个,三个)创建数组并提交该数据。 问题是,我应该怎么做,还是有更好的(更精细)的方法来解决这个问题?

您需要将它们与匹配的索引配对,并在定义它之前为复选框设置默认的隐藏输入:

Field one:    <input type="text" name="field[0]" /><br />

              <input type="hidden" name="check[0]" value="0">
Checkbox one: <input type="checkbox" name="check[0]" value="1" /><br />

因此,现在您总是有一个check[0]field[0] check[0]匹配,但是如果未选中,它将具有值0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM