2017-02-17 60 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