查找每个错误复选框


Foreach error checkbox php

首页表单

<form action="calculatepage.php" method="post">
<table width="200" border="1">
  <tr>
    <td><?php echo $row['dvd_copy_id']?></td>
    <td><?php echo $row['dvd_title']?></td>
    <td><?php echo $row['price']?></td>
    <td><input type="checkbox" value="<?php echo $row['dvd_copy_id']?>" name="checkbox"></td>
  </tr>
</table>
<p>
  <?php
        }
    ?>
      <input type="submit" name="button" id="button" value="Submit" />
   </form>

第二页

<?php
echo $_POST['checkbox']; //This shows up if the last checkbox is checked
foreach($_POST['checkbox'] as $value) {
    echo print_r($value);
}
 ?>

在第二页返回错误"警告:在C:'xampp'htdocs'test' calculatpage .php第15行中为foreach()提供了无效参数"。

如何解决这个问题,并显示从第一页输入的多个复选框值?

用以下内容替换您的行在这里检查name="checkbox[]"

<td><input type="checkbox" value="<?php echo $row['dvd_copy_id']?>" name="checkbox[]"></td>

echo print_r($value);是错误的。对于数组

,应该使用print_r();var_dump();

表单只会在复选框被选中时发布复选框。如果用户没有检查任何东西,它就不会发布任何东西。如果没有发布任何内容,您可以通过插入一个空数组很容易地解决这个问题。

并且您需要将名称更改为checkbox[],否则它只会发布一个字符串(或什么都没有)。

<input type="checkbox" name="checkbox[]" ... />
$checkboxes = is_array($_POST['checkbox']) ? $_POST['checkbox'] : array();
foreach($checkboxes as $checkbox) {
    // ...
}