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() для любого селектора, который вы хотите удалить.