我是php的新手。我有一个包含多个复选框值的表单。我想检索已检查的值并在其他php表单上显示这些值。
如果我们添加没有while循环的复选框,下面是完全正常的代码。 但是当通过while循环添加时,我无法获取所选项目。
xyzhtml.php (html表格)
<?PHP
require ("DBConnect.php");
$selectQuery =mysql_query( "SELECT * FROM fruits where approved = 0");
while($row = mysql_fetch_array($selectQuery))
{
$fruit_name = $row['fruit_name'];
echo "<input type=\"checkbox\" name=\"things[]\" value=\"$fruit_name\">";
echo "<br>";
}
?>
On click of submit I call other php clled "xyz.php".
Below is the code used in it.
<?php
$checkBox = $_POST['things'];
echo $checkBox[0];
for($i=0; $i<sizeof($checkBox); $i++){
echo($checkBox[$i]);
}
?>
请帮忙。 提前谢谢。
答案 0 :(得分:1)
要检查两件事:
您是从MySQL SELECT语句中获取正确的值(检查您的HTML是否为空复选框值,并检查您的MySQL数据库中是否有已批准字段设置为0的水果以查看是否存在)
< / LI>如果您没有勾选复选框并提交表单,则未提交未选中复选框的值 - 您是否考虑过这个问题?
答案 1 :(得分:0)
使用foreach记录$ _POST ['things']
if (!empty($_POST['things'])) {
foreach ($_POST['things'] as $value) {
echo "the value are: ".$value;
}
}
注意:teh $ _POST ['things']不是$ _POST ['things []']
答案 2 :(得分:0)
我认为您的代码应该有效,但如果没有选中复选框,将不会显示任何内容。
但是我会删除显式的echo $checkbox[0]
(除非这是出于测试目的)。
尝试使用print_r($checkbox)
查看该数组中的实际内容。