我有以下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”转换为“已检查”?
答案 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;
});