我正在做一个小项目,如果选中该复选框,则想获取所有输入type =“ text”的值。如何运作?
<form name="test" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" target="_blank">
<?php
foreach ($data['items'] as $key => $value) {
echo "<label class=\"Items\">
<input type=\"checkbox\" checked=\"checked\" name=\"items[]\" value=\"$value\">
<input type=\"text\" value=\"$value\">
</label>";
}
?>
</form>
我已经尝试过了,但是只返回了我的复选框值,而不是文本值。
if(isset($_POST['items'])) {
$items = $_POST['items'];
}
答案 0 :(得分:1)
首先,要将文本框值传递给服务器,还需要给文本框起一个名字:
<input type="text" name="values[]" value="$value">
这种将文本框与复选框同步的方法是这种小技巧:
foreach ($data['items'] as $key => $value) {
echo "<label class='Items'>
<input type='hidden' name='keys[{$key}]' value='checkbox_isnt_selected'>
<input type='checkbox' checked='checked' name='keys[$key]' value='$value'>
<input type="text" name='values[$key]' value='$value'>
</label>";
}
这样,如果未选中此复选框,则您在服务器上将获得checkbox_isnt_selected
,否则,您将获得相关的$value
。选中后,该复选框将覆盖隐藏输入的值。
答案 1 :(得分:0)
如果要使用$ _POST ['items']访问表单中的所有数据,请按照以下步骤操作:
<form name="test" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" target="_blank">
<?php
foreach ($data['items'] as $key => $value) {
echo "<label class='Items'>
<input type='checkbox' checked='checked' name='items[$key][]' value='$value'>
<input type='text' name='items[$key][]' value='$value'>
</label>";
}
?>
</form>