我正在尝试从mysql列导入名为“products”的表中的爆炸值(类别ID),并将其打印在复选框输入中,并检查值(类别ID)是否等于(类别ID)在名为“cats”的表中,要将复选框设置为“已选中”,这是我的代码:
<?php
for($i2=0;$i2<$rowsZ22;$i2++){
//exploding
$catszz2 = explode(",", $bussSubcat);
//foreach start
foreach($catszz2 as $catzz2) {
if($catzz2==$row22[$i2]["id"]){
$ischecked2="checked";
}else{
$ischecked2="";
}
}
//foreach end
?>
<li><input type="checkbox" onclick="getElementById('cats<?=$row22[$i2]["parent"]?>').checked= true;" <?=$ischecked2?> value="<?=$row22[$i2]["id"]?>" name="subcats[]" id="" /> <?=$row22[$i2]["title"]?></li>
<?php
}
?>
代码只检查最后一个输入(最后一个类别)
任何帮助?
答案 0 :(得分:0)
在您实际输出复选框之前,您正在运行foreach ...
因此,$isChecked
变量实际上在您的foreach中发生变化,但只会打印循环的最后一个值。
你需要移动你的
在<li></li>
$isChecked
我不确定这是不是你想要的,但这里有:
<?php
for ($i2 = 0; $i2 < $rowsZ22; $i2++) {
$catszz2 = explode(",", $bussSubcat);
foreach ($catszz2 as $catzz2) {
if ($catzz2 == $row22[$i2]["id"]) {
$ischecked2 = "checked";
} else {
$ischecked2 = "";
}
?>
<li>
<input type="checkbox"
onclick="getElementById('cats<?= $row22[$i2]["parent"] ?>').checked= true;" <?= $ischecked2 ?>
value="<?= $row22[$i2]["id"] ?>" name="subcats[]" id=""/> <?= $row22[$i2]["title"] ?>
</li>
<?php
}
}
?>