Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cakephp Ajax按钮_Ajax_Facebook_Cakephp_Cakephp 1.3 - Fatal编程技术网

Cakephp Ajax按钮

Cakephp Ajax按钮,ajax,facebook,cakephp,cakephp-1.3,Ajax,Facebook,Cakephp,Cakephp 1.3,我有一个删除按钮。单击它应该访问像/delete/{id}这样的url,并且一旦来自该url的响应为真。我想删除facebook中的评论框。因此,在视图中编写一个onClick事件处理程序,在事件处理程序调用的相应控制器上编写一个php delete方法,并在ajax调用返回成功时执行一个javascript操作。除了Leo的评论之外,我不会添加任何额外内容,但我将用一些代码进行解释。假设您正在使用jQuery $(document).ready(function(){ $('tr a.

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

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

除了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类且位于表行中的链接

你应该做两件事:

  • 你需要传入一些字符串 以检测操作是否正常 成功与否。在我的例子中,我 会在成功时打印“ok” 删除

  • 如果你的桌子有页码,它不会 重建表,而它只是 将从表中删除该行。 如果你有,让我们说每行5行 页面,您将在 页面在存在时将保持为空 将在表中显示其他记录。 这就是为什么不移除 我会重新加载整个页面

  • 在这种情况下,成功删除的代码如下所示:

    if(response == 'ok'){
       $('#content').load(window.location);
    }
    
    脚本没有经过优化,但它将为您提供如何实现您的想法的想法


    HTH

    谢谢Nik,我想问一下。如何在删除完成时发回一些数据,在无法删除时发回错误数据。这样我就可以在警报框中显示它了。只需转到控制器的删除操作并键入echo“ok”;模具();或“错误”;模具();就这样,删除重定向以防万一。