Foreach错误复选框php

时间:2014-05-15 12:49:42

标签: php html checkbox

首页表格

<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);
}
 ?>

它返回错误&#34;警告:在第15行和第34行的C:\ xampp \ htdocs \ test \ calculatepage.php中为foreach()提供的参数无效;在第二页。

如何修复此问题并显示从第一页输入的多个复选框值? 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

用以下内容替换您的线路 点击name="checkbox[]"

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

echo print_r($value);错了。您应该使用print_r();var_dump();作为数组

答案 1 :(得分:0)

表单只会在选中后发布复选框。因此,如果用户没有检查任何内容,它将不会发布任何内容。如果没有发布任何内容,您可以通过插入空数组来轻松解决这个问题。

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

<input type="checkbox" name="checkbox[]" ... />

$checkboxes = is_array($_POST['checkbox']) ? $_POST['checkbox'] : array();
foreach($checkboxes as $checkbox) {
    // ...
}