Gij*_*ijs 2 php forms arrays checkbox
我正在构建一个可以添加更多字段组的表单来处理它们我在for循环中读出数组
剧本:
<?php
foreach ($_POST as $key => $value) {
$$key = $value;
}
$count = count($name);
for ($i=0; $i<$count; $i++){
?>
<strong><?php echo $name[$i]; ?></strong> (<?php echo $check[$i]; ?>)<br /><?php echo $select[$i]; ?><br /><br />
<?php
}
?>
<form method="post">
<div class="group">
<input type="text" name="name[]" /><br />
<input type="checkbox" name="check[]" value="true" /><br />
<select name="select[]"><option>1</option><option>2</option><option>3</option></select>
</div>
<div class="group">
<input type="text" name="name[]" /><br />
<input type="checkbox" name="check[]" value="true" /><br />
<select name="select[]"><option>1</option><option>2</option><option>3</option></select>
</div>
<div class="group">
<input type="text" name="name[]" /><br />
<input type="checkbox" name="check[]" value="true" /><br />
<select name="select[]"><option>1</option><option>2</option><option>3</option></select>
</div>
<button>Add another group</button>
<input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
如果选中所有复选框,则没有问题,但是如果只检查了最后一个复选框,它只计算数组中的一个复选框,然后将name [0]与check [0]组合,但检查[0]确实是检查[2].英语不是我的母语所以我不知道正确的单词.
实际上,正如Sam在Stack Overflow的答案中提出的那样,有一个不错的解决方法:
它对我有用,我怀疑你和我有类似的问题(我的相似(ish)组中有300个输入字段,并且不想为每个单独的字段编写验证规则,只是针对每个输入类型系列的规则,例如电子邮件地址或邮政编码.简而言之,技术是在复选框字段之前放置一个具有相同名称的隐藏输入字段.设置隐藏字段的值(type ='hidden')到'0'将确保POST阵列中至少出现一个键/值,只有在选中该复选框时,'0'才被后来的'1'取代.我需要' 0'值允许人们"取消设置"他们之前"设置"的选项,例如他们愿意显示他们的联系人数据.这种技术允许我向用户呈现与更新相同的更新形式首先注册.感谢Sam!