2017-02-17 61 views
0

我想用jQuery發送一個POST(以及稍後的一個DELETE)AJAX請求來替換$("#memberResults").load(url)的當前功能。我需要加載相同的URL,但使用POST或DELETE謂詞取決於我是否向我的REST服務添加或刪除成員。我應該澄清,該網址首先到我的java後端。使用POST重新加載選擇器的jQuery AJAX調用

我試過使用$ .ajax方法,但似乎無法讓它正常工作。此代碼將正確添加成員,但不會執行AJAX刷新(我需要刷新整個頁面才能看到更改)。

function addMember(){ 

    var member = document.getElementById('memQueryResult').innerHTML; 
    var role = document.getElementById('roleChosen').innerHTML; 
    var url = '/roles/' + role + '/' + member; 

    $.ajax({ 
     url : url, 
     type : 'POST', 
     success : function(url) { 
      $("#memberResults").load(url); 
     } 
    }); 
} 
+0

我不明白這個問題。你做Ajax調用,比你做'.load(dataFromServer)'...你期望發生什麼? – Justinas

+0

@Justinas我只使用.load(),因爲我看不到在$ .ajax中添加選擇器的位置。這個調用應該伸出我的java函數,它會添加/刪除給定的成員,然後用給定的選擇器重新加載顯示在我的站點上的成員列表。 – Brandon

+0

@Justinas看來我的代碼實際上工作。但是,它不會正確刷新選定的ID。我已經更新了相應的問題。 – Brandon

回答

0

你先做好POST/DELETE請求併成功只是從服務器響應的內容替換元素(包含新的重新加載項列表)

var ajaxType = getAction(); // returns 'POST' or 'DELETE' 
var url = '/roles/' + $('#roleChosen').text() + '/' + $('#memQueryResult').text(); 

$.ajax({ 
    url: url, 
    type: ajaxType, 
    success: function (response) { 
     $('#memberResults').replaceWith(response); 
    } 
}); 

document.getElementById('memQueryResult').innerHTML可更換的jQuery $('memQueryResult').html()

+0

這完美的作品!非常感謝! – Brandon