使用ajax異步更新後臺數據並無刷新更新頁面數據

爲提高用戶體驗,在現在的web開發中會大量使用ajax技術異步更新後臺數據,實現頁面無刷新更新頁面上的數據。

以下是本人在開發《IT設備管理系統》中使用 ajax更新設備的使用人和狀態的代碼

1. 前端頁面顯示如下:  User Status和Resigdate字段以及‘用戶領用的設備’的值通過按鈕【用戶離職,回收設備】調用 ajax,異步更新後臺的數據,並在頁面無刷新更新

2

 

點擊【用戶離職,回收設備】按鈕後, 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")

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章