我有以下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數據庫來填充表單。到目前爲止,我能夠填充輸入字段,textareas和複選框,但我絕對堅持填充單選按鈕。請注意,MySQL存儲布爾值:複選框(在Windows,Linux) 和單選按鈕(IDE,GUI,RAD)
這是從數據庫中檢索數據,並將其轉換成JSON PHP的一部分:
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]);
僅適用於複選框。 Radibuttons'name'是'environment',對於所有三個單選按鈕必須是相同的。所以,當然上面的線路不工作。我試圖將其更改爲:
$(":input[id='" + key + "']").attr("checked", jsonOBJ[key]);
和我說「ID」的單選按鈕,如下所示:
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 2012-02-17 12:09:42
哦,我的上帝! **已解決!**花了兩天時間!謝謝** bsimic **我將.attr改爲.prop,並且它突然運行。 – Nicero 2012-02-17 12:39:43
很高興我能幫到你。我會把它作爲一個「解決方案」加入,所以如果你可以把它作爲答案,也許它可以幫助其他人搜索某一天! – bsimic 2012-02-17 14:12:07