从数据库中复选PHP多个复选框

时间:2016-06-30 19:24:45

标签: php arrays database checkbox while-loop

我正在尝试从数据库生成一个包含多个复选框的表单。现在只显示数组中的最后一个条目。如果应该只检查一件事它是有效的,但对于多个,只有数组中的最后一个条目显示为已选中。任何帮助将不胜感激。谢谢!

<?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 />';
?>

1 个答案:

答案 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 />";
相关问题