2010-11-16 29 views
0

我有一個刪除按鈕。點擊它應該訪問像/ delete/{id}這樣的URL,並且一旦該URL的響應爲真。我想刪除評論框在Facebook中。Cakephp Ajax Button

回答

4

我不會添加任何額外的獅子座的評論,但我會解釋一些代碼。假定你正在使用jQuery ...

$(document).ready(function(){ 
    $('tr a.delete').live('click', function(e){ 
     e.preventDefault(); 
     var link = $(this); 
     $.get($(this).attr('href'), null, function(response){ 
      if(response == 'ok'){ //you should invent how to get 'ok' or other string identifying that the deletion is successful. 
       link.parents('tr').remove(); 
      } else { 
       alert('There is a problem while deleting this element'); 
      } 
     }); 
    }) 
}); 

,如果你把這個代碼在您的項目它會處理其中有.delete類,並在錶行的所有鏈接。

有兩件事情,你應該做的:

  1. 你需要傳遞一些字符串 爲了檢測如果操作 成功與否。在我的示例中,我將在成功刪除 時打印「OK」 。

  2. 如果你的表有分頁,它不會 重建表,而它只是 將從表中刪除該行。 ,如果你有5行,每 頁,你刪除他們所有的 頁面將保持爲空,而 將是其他記錄在表中。 這就是爲什麼而不是刪除 tr我會重新加載整個頁面。

在這種情況下成功刪除代碼將是這樣的:

if(response == 'ok'){ 
    $('#content').load(window.location); 
} 

腳本沒有優化,但它會給你的想法如何實現你的想法。

HTH

+0

感謝尼克,我的問題。如何在刪除完成時發回一些有用的數據,以及何時不能刪除時發送錯誤數據。這樣我就可以在一個警告框中顯示。 – 2010-11-16 17:28:29

+0

只需要去你的控制器的刪除操作並輸入echo'ok'; die();或'錯誤'; die();這就是它,並刪除重定向以防萬一。 – 2010-11-16 20:35:11

3

因此,在您的視圖中編寫一個onClick事件處理程序,在事件處理程序調用的相應控制器上執行php delete方法,並在ajax調用返回成功時執行javascript操作。