我有一个函数可以从我的数据库中的类别表中构建一个类别列表:
我想要实现的是当我来编辑它时,如果该帖子属于该类别,则自动勾选复选框。我有一个连接表,它接受帖子的id和类别的id,然后进行关联。我不知道从哪里开始?我对php很新,但这是我的尝试:
<?php
function build_cat_checkboxes(){
global $dbc;
global $id;
$q1 = "SELECT cat_id FROM doc_cat_join WHERE doc_id = '$id'";
$r1 = mysqli_query($dbc, $q1);
var_dump($r1);
$q = "SELECT * FROM cats";
$r = mysqli_query ($dbc, $q); //Run the query.
$currentDoc = $id;
while ($row = mysqli_fetch_array($r)) {
$checked = (($row['cat_id'] == $currentDoc) ? 'checked' : '');
echo '<ul>
<li><label>
<input type="checkbox" name="cat_id[]" value="' . $row['cat_id'] . '" checked="'.$checked.'"> ' . $row["cat_name"] . '</label></li>
</ul>';
}
}
?>
所以现在我实际上通过检查doc_id和cat_id来获取我期望从连接表中得到的结果,并计算行数,但是我有点卡在复选框的循环上?
答案 0 :(得分:0)
在你的循环中,检查当前的&#39; cat_id&#39;对于您拥有的任何静态值,如果它们匹配,请将$ checked设置为&#39; check&#39;。
$currentCat = '123';
while ($row = mysqli_fetch_array($r)) {
$checked = (($row['cat_id'] == $currentCat) ? 'checked' : '');
echo '<ul>
<li><label>
<input type="checkbox" name="cat_id[]" value="' . $row['cat_id'] . '" checked="'.$checked.'"> ' . $row["cat_name"] . '</label></li>
</ul>';
}