PHP循环遍历HTML文本框的数组

时间:2011-08-03 17:31:28

标签: php html arrays forms

我有一个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); ?>]; ?>"

我很感激任何帮助。谢谢!

3 个答案:

答案 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]; ?>"
相关问题