2012-02-15 25 views
0

我有以下MySQL表:如何檢查一個複選框查詢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'轉換爲'checked'?

回答

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; 
}); 
+0

謝謝羅裏。代碼返回 - 例如 - 「windows」:「1」。如果我有一個FOR LOOP,你可以在我上面的JQuery代碼中看到我應該怎麼做?我只是在FOR LOOP中添加你的行,但它不起作用。 – Nicero 2012-02-15 14:33:58

+0

我已經爲你更新了我的答案。 – 2012-02-15 14:52:12

+0

對不起羅裏。不起作用。您建議的PHP部分確實有效。它返回「windows」:true。但是JQuery部分什麼都不做。順便說一下,我需要的.val(jsonOBJ [key])部分不僅僅是.attr部分,因爲我也需要記錄的值。你可以幫我嗎? – Nicero 2012-02-15 15:11:55