Как в Yii2 обновить часть контента используя JavaScripit и Pjax

Как в Yii2 обновить часть контента используя JavaScripit и Pjax

Первое что нам нужно, это подключить сам "Pjax":

use yiiwidgetsPjax;

Далее, обернуть нужный контент в "Pjax" виджет. Например так:

<?php Pjax::begin([ 'id' => 'pjaxContent'
]); ?>

Здесь контент

<?php Pjax::end(); ?>

Ну а для того чтобы "насильно" обновить нужный нам контент, запускаем в JS следующий код:

$.pjax.reload({container: '#pjaxContent'});

не забывая что должен быть подключен jQuery фреймворк (хотя в Yii он идет по умолчанию).

Или вешаем обновление на событие:

$(document).on('click', '#myBtn', function (e) {
	e.preventDefault();

	$.pjax.reload({container: '#pjaxContent'});

	return false;
});
Поделиться в соцсетях:

С вашим сайтом на фреймворке Yii2 проблемы? нужен дополнительный функционал?
Тогда напишите мне через форму обратной связи, и я постараюсь вам помочь.

Комментарии
  1. Михаил

    А, собственно, как указать контроллер, который вернет обновленные данные?

    ответить
    1. Pavel
      05.08.2020 в 17:25 автор блога

      Можно здесь:

      $this -> registerJs("
      $('#field-table').change(function(e){
      $.pjax({url: '".Url::to(['index'])."?table=' + $('#field-table option:selected').val(), container: '#pj-report-table'});
      });
      ");

      На "url" передаем запрос используя хелпер "Url::to(['index'])"

      ответить
Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *