【问题标题】:Cakephp Ajax ButtonCakephp Ajax 按钮
【发布时间】:2010-11-16 11:25:23
【问题描述】:

我有一个删除按钮。点击它应该访问像 /delete/{id} 这样的 url,并且一旦来自该 url 的响应为真。我想删除 Facebook 中的评论框。

【问题讨论】:

    标签: ajax facebook cakephp cakephp-1.3


    【解决方案1】:

    除了 Leo 的评论,我不会添加任何额外内容,但我会用一些代码进行解释。假设你正在使用 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

    【讨论】:

    • 谢谢尼克,我有疑问。删除完成后如何发回一些数据,无法删除时如何发回错误数据。这样我就可以在警告框中显示它。
    • 只需转到控制器的删除操作并键入 echo 'ok';die();或“错误”;死();就是这样,删除重定向以防万一。
    【解决方案2】:

    因此,在您的视图中编写一个 onClick 事件处理程序,在事件处理程序调用的适当控制器上编写一个 php 删除方法,并在 ajax 调用返回成功时执行一个 javascript 操作。

    【讨论】:

      猜你喜欢
      • 2011-11-06
      • 2011-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多