[英]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
配对, two
与two
配对,依此类推。 这听起来很难,对吗? 如果检查并填写了所有内容,则不是:
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.