如何检查查询MySQL哪个记录是布尔值的复选框

时间:2012-02-15 14:12:59

标签: jquery mysql checkbox

我有以下MySQL表:

|  id   |    Name    |  Windows | Linux |
-----------------------------------------
|   1   |  Photoshop |     1    |   0   |
-----------------------------------------
|   2   |  Gimp      |     0    |   1   |

点击以下名称:

<a class="editlink" id="<?php echo $review['id']; ?>" href="#"><?php echo  $review['title']; ?></a>

我可以使用以下JQuery代码填充表单:

$(".editlink").click(function() {
    $.get("lists.php", {param2: $(this).attr('id')}, 
    function(data) {
        jsonOBJ = jQuery.parseJSON(data);
                for (var key in jsonOBJ) {
                     $(":input[name='" + key + "']").val(jsonOBJ[key]);
                }
        }   
);    
    return false;
});

这就是形式:

<form method ="post" action="review.php">   
    <input class="edit_title" type="text" size="51" value="" name="title"/><br/>
    <input type="checkbox" name="windows"/>
    <input type="checkbox" name="linux"/>
</form>

LIST.PHP文件如下:

$qry = mysql_query("SELECT * FROM reviews JOIN filters ON reviews.id = filters.id WHERE reviews.id = ".$_GET['param2']." ");    
    while($review = mysql_fetch_array($qry)) {
        $arr = array('id_field' => $review['id'],
                     'title' => $review['name'],
                     'windows' => $review['Windows'],
                     'linux' => $review['Linux']
        );
    echo json_encode($arr);
}

但我不知道如何检查或取消选中保存到数据库中的布尔值(0或1)的复选框。 例如,如果JSON返回“windows”:“1”,我该如何将“1”转换为“已检查”?

1 个答案:

答案 0 :(得分:0)

<强>已更新

我会修改你的PHP,为复选框字段返回一个布尔值,如下所示:

$qry = mysql_query("SELECT * FROM reviews JOIN filters ON reviews.id = filters.id WHERE reviews.id = ".$_GET['param2']." ");    
    while($review = mysql_fetch_array($qry)) {
        $arr = array('id_field' => $review['id'],
                     'title' => $review['name'],
                     'windows' => $review['Windows'] == "1",
                     'linux' => $review['Linux'] == "1"
        );
    echo json_encode($arr);
}

然后,您只需将返回值设置为单选按钮上的checked属性:

$(".editlink").click(function() {
    $.get(
        "lists.php", 
        { param2: $(this).attr('id') }, 
        function(data) {
            jsonOBJ = jQuery.parseJSON(data);
            for (var key in jsonOBJ) {
                $(":input[name='" + key + "']").attr("checked", jsonOBJ[key]);
            }
        }   
    );    
    return false;
});