我有一个HTML表单,其中包含动态数量的复选框字段,所有这些字段都封装在提交表单中。提交表单时,我想用PHP脚本遍历每个复选框字段的值。同时,我必须保留与复选框字段关联的特定ID,以便当我遍历脚本中的每个ID时,我可以使用ID更新数据库中的正确行。目前,我有:
<input checked="checked" name="attended_<?php echo($pid); ?>"
我只是不确定如何继续从我的PHP脚本访问所有有人值守的[]值(同时保留ID)。我会使用如下的多维数组吗?
<input checked="checked" name="attended[<?php echo($i); ?>][<?php echo($pid); ?>]; ?>"
我很感激任何帮助。谢谢!
答案 0 :(得分:1)
也许你可以使用一个隐藏字段来实现它,该字段与名称的复选框“关联”:
<input checked="checked" name="attended_<?php echo($i); ?>"
<input type="hidden" name="attended_<?php echo($i); ?>_reference" value="<?php echo($pid); ?>" />
因此,在提交后处理POST数据时,您可以通过一些字符串操作再次将引用放在一起。
答案 1 :(得分:1)
通常当我创建复选框时,我在名称中添加了一个索引。这样您就可以遍历提交代码中的每个复选框。
<input type="checkbox" name="cbGroup[1]" value="y" />
<input type="checkbox" name="cbGroup[2]" value="y" />
<input type="checkbox" name="cbGroup[3]" value="y" />
和你的PHP
foreach($_POST['cbGroup'] as $index=>$checkbox) {}
您需要确保设置$ _POST ['cbGroup'],因为如果未选中该复选框则不会。
编辑:对不起,我应该学会完全阅读这个问题嘿:)我在PHP中使用多维数组,一直都是HTML输入,我认为这就是我要去的方式。
答案 2 :(得分:1)
让我们说这是来自表单的数据
<input checked="checked" name="attended[1]; ?>"
<input checked="checked" name="attended[2]; ?>"
<input checked="checked" name="attended[3]; ?>"
<input checked="checked" name="attended[4]; ?>"
<input checked="checked" name="hello[1]; ?>"
<input checked="checked" name="hello[2]; ?>"
这就像它看起来像数组一样。不需要它仅用于表演
// $k => $v
$attended[1]='blah blah';
$attended[2]='blah blah';
$attended[3]='blah blah';
$attended[4]='blah blah';
$hello[1]='blah blah';
$hello[2]='blah blah';
科学位
foreach($attended as $k=>$v){
$sql = "UPDATE mytable SET attended = '$v', hello = '{$hello[$k]}' where id = '$k'";
$query = mysql_query($sql) or die("Cannot query the database.<br />" . mysql_error());
}
所有相关数据应具有相同的pid,例如
<input checked="checked" name="attended[1]; ?>"
<input checked="checked" name="hello[1]; ?>"