- PVSM.RU - https://www.pvsm.ru -

Использование Pjax в Yii2 (краткий обзор)

Разрабатываю проект на yii2, попутно изучая фреймворк, и не смог не поделиться одним из замечательных инструментов, который он представляет. Пост будет полезен тем, кто до этого с Pjax не работал. Опытным разработчикам, которые уделят посту время, буду благодарен за указание на неточности и дополнения, так пост станет полезнее и информативнее.

Использование Pjax с GridView

Хорошо об этом написано здесь [1].

Если в кратце, то для того, чтобы pjax заработал, надо виджет GridView обернуть следующим образом:

<?php yiiwidgetsPjax::begin(); ?>
<?= GridView::widget([
// ... configuration here
]);
<?php yiiwidgetsPjax::end(); ?>

Если же вы не хотите, чтобы все ссылки осуществляли pjax запрос, то следует исключаемым ссылкам добавить атрибут data-pjax=0. Например так:

<?= yiihelpersHtml::a(Yii::t('app', 'подробнее...'), ['car/view', 'id' => $car->id], ['data-pjax'=>0]) ?>

Так же у виджета pjax есть свойство:

public $linkSelector;

Его можно использовать для выборки ссылок, которые будут обрабатываться с использованием pjax.

pjax на сабмит формы

Если вы хотите повесить pjax на сабмит формы, то вам следует добавить ей атрибут data-pjax=1, так как по умолчанию код, формируемый виджетом, выглядит следующим образом:

jQuery(document).on('submit', "#w2 form[data-pjax]", function (event) {jQuery.pjax.submit(event, '#w2', {"push":true,"replace":false,"timeout":1000,"scrollTo":false});});

Однако, вы так же можете его изменить, используя свойство:

public $formSelector;
Где почитать подробнее

Ссылка на pjax виджет github.com/yiisoft/yii2-framework/blob/master/widgets/Pjax.php [2]
Ссылка на pjax плагин github.com/yiisoft/jquery-pjax [3]

Автор: codru

Источник [4]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/php-2/61997

Ссылки в тексте:

[1] здесь: http://git.yiisoft.com/wiki/655/how-to-use-gridview-with-ajax/

[2] github.com/yiisoft/yii2-framework/blob/master/widgets/Pjax.php: https://github.com/yiisoft/yii2-framework/blob/master/widgets/Pjax.php

[3] github.com/yiisoft/jquery-pjax: https://github.com/yiisoft/jquery-pjax

[4] Источник: http://habrahabr.ru/post/225823/