为提高用户体验,在现在的web开发中会大量使用ajax技术异步更新后台数据,实现页面无刷新更新页面上的数据。
以下是本人在开发《IT设备管理系统》中使用 ajax更新设备的使用人和状态的代码
1. 前端页面显示如下: User Status和Resigdate字段以及‘用户领用的设备’的值通过按钮【用户离职,回收设备】调用 ajax,异步更新后台的数据,并在页面无刷新更新
点击【用户离职,回收设备】按钮后, ajax 更新后台的数据库记录,将用户的Resigndate, lastupdate,User Status和用户领用的设备相关记录更新, 同时前端页面在保持不刷新的情况下更新了相应字段的值
2,以下是ajax,
function testajax(id, user_list_id){
// var id=$(ths).parent().parent().attr('nid');
// var orderid="{{ request.session.orderid }}";
//给传递的data加一个时间变量,时间由下面的var times获得,以解决在IE中工作不正常的问题
var times=new Date().getTime();
$.ajax({
type: 'GET',
url: '/deviceman/ajax_update_pc',
dataType: 'json',
data:{id:id,times:times,user_list_id:user_list_id},
success: function(ret){
alert(ret.state);
window.location.reload();
}
});
}
3. 以下是后台的对应的视图函数,响应前端AJAX的调用,完成数据库记录的更新。
def ajax_update_pc(request):
if request.method == 'GET':
pc_id = request.GET.get('id', None)
user_list_id = request.GET.get('user_list_id')
print('get pc_id from ajax "%s"'%(pc_id))
if pc_id:
pc_list.objects.filter(id=pc_id).update(user_list_id='180', host_status='inventory')
data={'state':"Computer information has been sucessfully updated"}
#data = list(pc_list.objects.filter(user_list_id=user_list_id).values("id", "host_name","service_tag","hosttype"))
#data.append(data1)
result=json.dumps(data)
print(result)
return HttpResponse(result, "application/json")