2012-02-15 1 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, чтобы возвращать логическое значение для CheckBox полей, как это:

$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

+0

Я обновил свой ответ для вас. –

+0

Извините Рори. Не работает. Часть PHP, которую вы предложили, работает. Он возвращает «windows»: true. Но часть JQuery ничего не делает. Кстати, мне нужна часть .val (jsonOBJ [key]) тоже не только .attr, потому что мне нужны значения записи. Вы можете мне помочь? – Nicero