Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从表单中提供的PHP数组中收集选中项?_Php_Arrays_Forms - Fatal编程技术网

如何从表单中提供的PHP数组中收集选中项?

如何从表单中提供的PHP数组中收集选中项?,php,arrays,forms,Php,Arrays,Forms,我有一个表单,它从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>

我有一个表单,它从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
页面上回显这些变量?

您必须通过在名称上添加
[]
来确定此输入是一个值数组:

echo '<input ... name="reveal_menu[]" ...>';
编辑以回答OP评论:

您需要创建一个数组来处理这些值。但是$\u POST['discover\u menu']本身就是一个数组。例如,您可以访问
$\u POST['discover\u menu'][0]


请记住,
$\u POST['discover\u menu']
是一个仅包含选中值的数组。索引
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.');
  }
?>


给表单一个
名称
方法
属性。然后在下一页上,参考适当的超级全局数组
$\u GET
$\u POST
,并根据需要使用变量。尝试将
name=“release\u menu”
替换为
name=“release\u menu[]”并执行
var\u转储($\u POST['release\u menu'])
在PHP代码中。这对于能够在屏幕上打印每个
$checkbox
项目来说非常好,但是如何将它们设置为单独的PHP变量呢?
<?php
  foreach($_POST['menuname'] as $v)
  {
    echo($v . 'Was checked.');
  }
?>