我有一个表单,它从foreach循环构建表单项,并为每个项放置一个复选框:
<form action="nextStep.php">
<?php
foreach ($children[0] as $myPage) {
$menuname = $info[$myPage]['label'];
echo '<input type="checkbox" id="'.$menuname.'" name="reveal_menu" value="no" unchecked><label for="'.$menuname.'">'.$menuname.'</label><br>';
}
?>
<br>
<input type="submit" value="Submit">
</form>
如您所见,我从未检查的每个项目开始。我想知道的是我应该如何构建nextStep.php
脚本来创建单个php变量,我可以在用户点击提交按钮后在nextStep.php
页面上回显?
答案 0 :(得分:1)
您必须通过在名称上附加[]
来确定此输入是值数组:
echo '<input ... name="reveal_menu[]" ...>';
在nextStep.php中:
foreach($_POST['reveal_menu'] as $checkbox)
echo $checkbox;
编辑回答OP评论:
您需要创建一个数组来处理这些值。但是$ _POST [&#39; reveal_menu&#39;]本身就是一个数组。例如,可以访问$_POST['reveal_menu'][0]
。
请注意,$_POST['reveal_menu']
是一个只有选中值的数组。索引0
并不指向表单的第一个复选框,而是从表单中选中的第一个复选框。
答案 1 :(得分:0)
每个项目都需要具有唯一值,可能是menuname,因此您可以确定哪些值已经过检查,并且名称需要在末尾附加[]
运算符。
<form action="nextStep.php">
<?php
foreach ($children[0] as $myPage) {
$menuname = $info[$myPage]['label'];
echo '<input type="checkbox" id="'.$menuname.'" name="reveal_menu[]" value="$menuname" unchecked><label for="'.$menuname.'">'.$menuname.'</label><br>';
}
?>
<br>
<input type="submit" value="Submit">
</form>
循环播放时,您将获得一系列值。
<?php
foreach($_POST['menuname'] as $v)
{
echo($v . 'Was checked.');
}
?>