2010-11-16 27 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操作。