,应该使用
首页表单
<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:xampphtdocstest 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) {
// ...
}