Ajax вызов удалить CakePHP

Я пытаюсь использовать 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'));

2 ответа

$(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') не работает... как получить идентификатор выбранного элемента, чтобы удалить его, у меня есть на мой взгляд:

<div class="box_detail" id="row<?php echo $publication['Publication']['id']; ?>">

Это не проблема CakePHP, а проблема только JS. Если ваш обратный вызов удаления был успешным без каких-либо ошибок, вы должны удалить связанный контент из дерева DOM. Используя jquery, это можно сделать, вызвав remove() для любого селектора, который вы хотите удалить.

Другие вопросы по тегам