我正在尝试从数据库生成一个包含多个复选框的表单。现在只显示数组中的最后一个条目。如果应该只检查一件事它是有效的,但对于多个,只有数组中的最后一个条目显示为已选中。任何帮助将不胜感激。谢谢!
<?php
include "DBconnect.php";
$staffId = $_REQUEST["ID"];
$query=" select listCode from staffLabels
where staffId = $staffId";
$result=$mysql->query($query);
while($row=$result->fetch_assoc()){
//in_array ()check if value is in array
$b_checked='';
$d_checked='';
$x_checked='';
$f_checked='';
$c_checked='';
if($row['listCode'] =="b") {$b_checked='checked';}
elseif($row['listCode'] =="d") {$d_checked='checked';}
elseif($row['listCode'] =="x") {$x_checked='checked';}
elseif($row['listCode'] =="f") {$f_checked='checked';}
elseif($row['listCode'] =="c") {$c_checked='checked';}
}
echo '<input type="checkbox" name="listCode[]" value="b" '.$b_checked.' >b';
echo '<input type="checkbox" name="listCode[]" value="d" '.$d_checked.' >d';
echo '<input type="checkbox" name="listCode[]" value="x" '.$x_checked.' >x';
echo '<input type="checkbox" name="listCode[]" value="f" '.$f_checked.' >f';
echo '<input type="checkbox" name="listCode[]" value="c" '.$c_checked.' >c<br /><br />';
?>
答案 0 :(得分:1)
试试这个
<?php
include "DBconnect.php";
$staffId = (int) $_REQUEST["ID"];
$query=" select listCode from staffLabels
where staffId = $staffId";
$result=$mysql->query($query);
$checked=[];
while($row=$result->fetch_assoc()){
$checked[$row['listCode']]=true;
}
foreach(['b','d','x','f','c'] as $value){
$chk=isset($checked[$value])?'checked':'';
echo "<input type='checkbox' name='listCode[]' value='$value' $chk>";
}
echo "<br /><br />";