2013-03-13 179 views
0

以下是我想用AJAX完成的事情。我從來沒有使用過AJAX,所以我甚至不確定我想要完成的是否正確使用。我試圖加快網站用戶可以刪除收件箱中累積的某些郵件的速度。在我的網站以前的版本中,每次刪除可能變得非常慢的消息時,頁面都必須刷新。爲了解決這個問題,我決定不用在用戶按下「刪除」按鈕時觸發表單,而是在客戶端設置jquery來清除消息html,然後發送一個異步POST請求,告訴服務器從數據庫。麻煩製作AJAX請求

$(document).ready(function() { 
    $(".deleteButton").click(function() { 
      var id = $(this).attr('id'); 
      $("tr#"+id).slideUp("fast"); 
      $.ajax({type: "post", 
       url: "/message", 
       data: {"delete_mes": id}}); 
    }); 
}); 

這幾乎奏效。每當我點擊刪除消息消失,當我重新加載頁面它仍然消失,顯示服務器已成功刪除該消息。但是,在重新加載頁面之前刪除多條消息時,除第一條消息之外的所有消息都會重新出現。

希望在ajax有更多經驗的人會知道什麼是錯的。我的服務器使用Google App Engine進行設置。謝謝!

+1

它看起來好像你有重複的ID,我會建議先解決這個問題。 – 2013-03-13 18:22:39

+0

難道只是刪除多個而不是不夠? – Harrison 2013-03-13 18:54:05

+0

我不知道,因爲使用無效的html可能有*不可預知的結果。 – 2013-03-13 18:57:03

回答

0

首先:您不應該在頁面上多次使用相同的ID。

我已爲您制定瞭解決方案,請檢查此jsFiddle

$(document).ready(function() { 
    $(".deleteButton").click(function() { 
     var parent = $(this).parent('tr'); 
     var id = parent.attr('id'); 
     parent.slideUp("fast"); 
     // your ajax 
    }); 
}); 
+0

在設法嘗試您的解決方案之前,問題就解決了,不過謝謝! – Harrison 2013-03-13 19:49:47