爲提高用戶體驗,在現在的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")