从php中的复选框中保存多个值

时间:2019-02-18 23:14:51

标签: php html checkbox

我对php很陌生,并且正在自学它,因此请记住这一点。

我正在一个项目中,该项目向用户显示数据库中的项目列表,并带有复选框,并允许用户检查它们。我想保存选中字段的值。这是打印所有选项的代码行。它会打印课程代码和课程标题,并带有一个复选框。

echo "<input type='checkbox' name ='boxes'>" . $row['course'] . ' ' . $row['title'] . "<br>";

但是,当我尝试打印选择的值时,它不起作用。我收到一条错误消息,提示invalid argument supplied foreach()

if(isset($_POST['submit_courses'])){
  if(!empty($_POST['boxes'])){
    foreach($_POST['boxes'] as $selected ){
      echo $selected."</br>";
    }
  }
}

请帮助!

1 个答案:

答案 0 :(得分:0)

尝试:

echo "<input type='checkbox' name ='boxes[]'>" . $row['course'] . ' ' . $row['title'] . "<br>";

编辑:

为了更好地回答这个问题:

您需要将value =“”属性添加到输入字段。因此,如果您在$ row数组中有一个ID,则将是这样...

echo "<input type='checkbox' name ='boxes[]' value=' . $row['id'] . '>" . $row['course'] . ' ' . $row['title'] . "<br>";

现在,您应该能够从$ _POST ['boxes']数组内的填充值中获取选定的ID。只需遍历它们,并对它们做一些事情,例如将它们回声。

foreach ($_POST['boxes'] as $box_value) {
  echo $box_value . "<br>";
}

只有选中的框才会出现在数组中,并且您将获得所选课程的标识符。