0

我正在尝试使用 ajax delete 删除在发送请求之前单击时确认的记录。记录被删除并且它可以工作,但问题是在删除视图中的任何更改之后,直到我手动重新加载页面之后。我想在对话框中单击“确定”后在视图中显示结果

我的ajax代码:

$(document).ready(function() { 
  if($('.confirm_delete').length) {
       $('.confirm_delete').click(function(){
         var result = confirm('Are you sure you want to delete this?');
         $('#flashMessage').fadeOut();
         if(result) {
           $.ajax({
              type:"POST",
              url:$(this).attr('href'),
              data:"ajax=1",
              dataType: "json",
              success:function(response){
                }
          });
      }

      return false;
    });
  }
});

鉴于:

echo $this->Js->link('Delete', array('controller' => 'publications', 'action'=>'delete', $publication['Publication']['id']),
  array('escape' => false, 'class'=>'confirm_delete'));
4

2 回答 2

1
$(document).ready(function(){
if($('.confirm_delete').length) {
   $id=$(this).attr('id');

   $('.confirm_delete').click(function(){
   var result = confirm('Are you sure you want to delete this?');
    $('#flashMessage').fadeOut();

    if(result) {
        $.ajax({
            type:"POST",
            url:$(this).attr('href'),
            data:"ajax=1",
            dataType: "json",
            success:function(response){

                }
        });


        $('#row'+$id).remove();

}


return false;
});

} });

由于某种原因, $(this).attr('id') 不起作用......如何获取所选元素的 id 以将其删除我认为:

<div class="box_detail" id="row<?php echo $publication['Publication']['id']; ?>">
于 2013-07-28T18:12:18.233 回答
0

这不是 CakePHP 的问题,而只是 JS 的问题。如果您的删除回调成功且没有返回任何错误,您必须从 DOM 树中删除相关内容。使用 jquery,这可以通过在要删除的任何选择器上调用remove()来完成。

于 2013-07-24T01:02:36.547 回答