@davidnum95

Как удалить блок по клику на ссылку внутри него?

В представлении генерируется список записей виджетом CListView:
<? $this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$dataProvider,
    'itemView'=>'_view',
    'ajaxUpdate'=>false,
    'template'=>"{items}"
));

Частичное представление _view.php:
<div class="something">
    <b><?= $data->username ?></b><br>
    <?= $data->email ?>
    <a href="#" id="deleteSomething">Delete</a>
    <input id="_id" style="display: none;" value="<?= $data->id?>">
</div>
<hr>


Необходимо по клику на ссылку удалить блок something, коих может быть много. Трудность вызывает собрать урл для отправки аякс гет запросом в экшен удаления, а также сделать колбэк функцию, т.е. визуально удалить со страницы этот самый блок, либо сделать апдейт виджета.
  • Вопрос задан
  • 3382 просмотра
Решения вопроса 1
EnChikiben
@EnChikiben
ничего сложного, в div добавьте скрытое поле с id запись у ссылки сделайте лучше класс т.к. по id не найти когда много записей. на клик (через on) навешиваете ajax, а в комплите ajax вызываете обновление $.fn.yiiListView.update("id-list"); и список обновиться
$(body),on("click",".deleteSomething",function(){
$.ajax({
  url: "htt://site.ru/delete",
  data:{"id":$(this).closest(".something").find(".id").val()}
})
  .done(function( data ) {
     $(this).closest(".something").remove();
     $.fn.yiiListView.update("id-list"); 
  });
})

как то так на вскидку
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы