如何只获取已标记复选框的表单字段的值?
形式:
<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
答案 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中。