通过检查数据库自动复选框

时间:2015-07-03 20:54:16

标签: php mysql

我有一个函数可以从我的数据库中的类别表中构建一个类别列表:

我想要实现的是当我来编辑它时,如果该帖子属于该类别,则自动勾选复选框。我有一个连接表,它接受帖子的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来获取我期望从连接表中得到的结果,并计算行数,但是我有点卡在复选框的循环上?

1 个答案:

答案 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>';
}