У меня есть следующий MySQL таблица:Как проверить радио кнопки
| id | Title | Windows | Linux | IDE | GUI | RAD |
------------------------------------------------------------
| 1 | Software_1 | 1 | 0 | 1 | 0 | 0 |
------------------------------------------------------------
| 2 | Software_2 | 0 | 1 | 0 | 1 | 0 |
Я хотел бы, чтобы заполнить форму, запрашивая БД MySQL. До сих пор я могу заполнять поля ввода, текстовые поля и флажки, но я абсолютно застрял в заполнении radiobuttons. Обратите внимание, что MySQL хранит булевы значения для: флажки (Windows, Linux) и радиокнопки (IDE, GUI, RAD)
Это PHP часть, которая извлекает данные из дБ и преобразует его в формат JSON:
while($review = mysql_fetch_array($qry)) {
$arr = array('id_field' => $review['id'],
'title' => $review['title'],
'homepage' => $review['link_homepage'],
'windows' => $review['Windows'] == "1",
'linux' => $review['Linux'] == "1",
'ide' => $review['IDE'] == "1",
'gui' => $review['GUI'] == "1",
'rad' => $review['RAD'] == "1"
);
echo json_encode($arr);
}
Это форма:
<form name="form" id="edit_review" method ="post" action="review.php">
Language name: <input type="text" size="34" value="" name="title"/>
Windows <input type="checkbox" name="windows" />
Linux <input type="checkbox" name="linux" />
IDE <input type="radio" name="environment" id="ide" value="ide"/>
GUI <input type="radio" name="environment" id="gui" value="gui"/>
RAD <input type="radio" name="environment" id="rad" value="rad"/>
</form>
Это код 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]);
$(":input[name='" + key + "']").attr("checked", jsonOBJ[key]);
}
}
);
return false;
});
Строка:
$(":input[name='" + key + "']").attr("checked", jsonOBJ[key]);
работает только для галочки. Имя «Radiobuttons» - это «среда» и должно быть одинаковым для всех трех радиообъектов. Итак, конечно, эта строка не работает. Я попытался изменить его:
$(":input[id='" + key + "']").attr("checked", jsonOBJ[key]);
и я добавил «идентификатора» в радиокнопки следующим образом:
IDE <input type="radio" name="environment" id="ide" value="ide"/>
и я заметил (с помощью «предупреждения»), что правильно установлен флажок но как только LOOP продолжается, сразу не снимается. Почему радиокнопки не отмечены, а флажков нет? Как я могу это исправить?
Какую версию jquery вы используете. Это зависит от того, используете ли вы .attr или .prop. Пожалуйста, см. Этот ответ для получения дополнительной информации: http://stackoverflow.com/questions/977137/how-to-set-radiobutton-in-jquery – bsimic
О, Боже мой! ** РЕШЕННЫЙ! ** Два дня, потраченные на это! Спасибо ** bsimic ** Я изменил .attr на .prop, и это сработало. – Nicero
Рад, что я мог помочь. Я добавлю это как «решение», поэтому, если бы вы могли сказать, что это ответ, возможно, это поможет другим, кто когда-нибудь будет искать! – bsimic