功能:后台有个的对象Notes,在页面上有个列表,列表最后一列做一个开关,修改notes一个属性(ispublic),
页面gsp代码:
<input type="button" οnclick="update(${notesInstance.id});" value="改"/>
将id通过js函数update用ajax方式提交到后台,切换ispublic状态
function update(id){
$.getJSON("updatePub", { id: id, now: (new Date()).getTime() },
function(data) {
if(data.ok=='ok')
$('#public'+id).html(data.val?'是':' ');
else
$('#public'+id).html('保存失败');
});
}
后端controller代码:
def updatePub={
logger.info(params.id.toString())
def instance = Notes.findById( params.id )
if(instance){
instance.isPublic=!instance.isPublic
instance.save()
def ret= [ok:'ok',val:instance.isPublic]
render ret as JSON
}
else{
def ret= [ok:'err']
render ret as JSON
}
}
流程:前端id传给update,jquery发送给后端updatePub
后端处理完数据库数据,将新的isPublic返回前端
前端解析json格式,分析data.val将最新的“是”/" "显示到页面