我有一个表格,其中包含数据库中的产品列表。
在该列表中,有一列显示开/关图像,可以单击该图像以打开或关闭值。
该列从数据库中显示:
if ($product_special == 1) {
$check_icon_special = "<img id='special_off_" . $product_id . "' style='cursor:pointer;' onClick=changeSpecial(" . $product_id . ",'off'); src='../assets/admin/layout/img/check_on.png'/>";
}else{
$check_icon_special = "<img id='special_on_" . $product_id . "' style='cursor:pointer;' onClick=changeSpecial(" . $product_id . ",'on'); src='../assets/admin/layout/img/check_off.png'/>";
}
点击它然后将其发送到:
type:"POST",
url: "/admin/special_change.php",
dataType: "html",
data: 'id=' + id + '&state=' + state,
async: false,
success: function(msg){
if (state == "on") {
$('#special_on_' + id).attr('src','/assets/admin/layout/img/check_on.png');
} else {
$('#special_off_' + id).attr('src','/assets/admin/layout/img/check_off.png');
}
},
这很有效。数据库已更新,图像显示打开或关闭的图像。
但是,如果不重新加载页面,我无法再次更改状态。我知道这个问题,因为changeSpecial onlclick事件没有改变。
我不是Jquery的专家。我很高兴我能做到这一点。知道我需要改变什么吗?
答案 0 :(得分:0)
修正了它。
我将onClick更改为:
onClick=changeSpecial(" . $product_id . ");
然后在special_change.php中我更改了查询,首先在数据库中检查当前值。
根据该值,我会发回或关闭图像的内容。
然后在ajax部分,我改变了这样的事情:
success: function(msg){
if (msg == "on") {
$('#special_on_' + id).attr('src','../assets/admin/layout/img/check_on.png');
$('#special_on_' + id).attr('id', 'special_off_' + id);
} else {
$('#special_off_' + id).attr('src','../assets/admin/layout/img/check_off.png');
$('#special_off_' + id).attr('id', 'special_on_' + id);
}
},