多个表单文本字段

时间:2010-12-12 09:51:40

标签: php html

如何只获取已标记复选框的表单字段的值?

形式:

<form id="form" name="form" method="post" action="">

<input type="text" name="textfield[]"  value="textf 1"/>
<textarea name="textarea[]" cols="45" rows="5">some text 1</textarea>
<input name="check[]" type="checkbox" value="checkb 1" />

<input type="text" name="textfield[]"  value="textf 2" />
<textarea name="textarea[]" cols="45" rows="5">some text 2</textarea>
<input name="check[]" type="checkbox" value="checkb 2" />

<input type="text" name="textfield[]"   value="textf 3"/>
<textarea name="textarea[]" cols="45" rows="5">some text 3</textarea>
<input name="check[]" type="checkbox" value="checkb 3" />

</form>

我想获取特定textfield和textarea的表单字段值。例如,如果我在此示例中标记了第一个和最后一个复选框。我怎么能用PHP做到这一点?

然后结果应该是:

textf 1
some text 1
checkb 1

textf 3
some text 3
checkb 3

1 个答案:

答案 0 :(得分:2)

给你的复选框和textareas设置索引,这样你就可以很容易地知道哪个复选框对应于什么形式。

<input type="text" name="textfield[0]"  value="textf 1"/>
<textarea name="textarea" id="textarea[0]" cols="45" rows="5">some text 1</textarea>
<input name="check[0]" type="checkbox" value="checkb 1" />

<input type="text" name="textfield[1]"  value="textf 2" />
<textarea name="textarea" id="textarea[1]" cols="45" rows="5">some text 2</textarea>
<input name="check[1]" type="checkbox" value="checkb 2" />

然后,您可以快速检查是否设置了特定复选框,并对关联的textarea执行某些操作。

foreach ($_POST['textfield'] as $idx => $value) {
  echo $_POST['textfield'][$idx] . "<br />";
  echo $_POST['textarea'][$idx] . "<br />";
}

那只会打印已检查文本字段的textareas,因为那些未检查的文本区域不在$ _POST中。