PHP Class yii\widgets\Pjax
Pjax only deals with the content enclosed between its [[begin()]] and [[end()]] calls, called the *body content* of the widget.
By default, any link click or form submission (for those forms with
data-pjax attribute) within the body content
will trigger an AJAX request. In responding to the AJAX request, Pjax will send the updated body content (based
on the AJAX request) to the client which will replace the old content with the new one. The browser's URL will then
be updated using pushState. The whole process requires no reloading of the layout or resources (js, css).
You may configure [[linkSelector]] to specify which links should trigger pjax, and configure [[formSelector]]
to specify which form submission may trigger pjax.
You may disable pjax for a specific link inside the container by adding
data-pjax="0" attribute to this link.
The following example shows how to use Pjax with the
GridView widget so that the grid pagination,
sorting and filtering can be done via pjax:
php
use yii\widgets\Pjax;
Pjax::begin();
echo GridView::widget([...]);
Pjax::end();
Show file
Open project: yiisoft/yii2
Class Usage Examples
Public Properties
Property |
Type |
Description |
|
$clientOptions |
|
additional options to be passed to the pjax JS plugin. Please refer to the
pjax project page for available options. |
|
$enablePushState |
|
whether to enable push state. |
|
$enableReplaceState |
|
whether to enable replace state. |
|
$formSelector |
|
the jQuery selector of the forms whose submissions should trigger pjax requests.
If not set, all forms with data-pjax attribute within the enclosed content of Pjax will trigger pjax requests.
If set to false, no code will be registered to handle forms.
Note that if the response to the pjax request is a full page, a normal request will be sent again. |
|
$linkSelector |
|
the jQuery selector of the links that should trigger pjax requests.
If not set, all links within the enclosed content of Pjax will trigger pjax requests.
If set to false, no code will be registered to handle links.
Note that if the response to the pjax request is a full page, a normal request will be sent again. |
|
$options |
|
the HTML attributes for the widget container tag. The following special options are recognized:
- tag: string, the tag name for the container. Defaults to div
This option is available since version 2.0.7.
See also [[\yii\helpers\Html::tag()]]. |
|
$scrollTo |
|
how to scroll the page when pjax response is received. If false, no page scroll will be made.
Use a number if you want to scroll to a particular place. |
|
$submitEvent |
|
The jQuery event that will trigger form handler. Defaults to "submit". |
|
$timeout |
|
pjax timeout setting (in milliseconds). This timeout is used when making AJAX requests.
Use a bigger number if your server is slow. If the server does not respond within the timeout,
a full page load will be triggered. |
|
Public Methods
Protected Methods
Method Details
registerClientScript()
public method
Registers the needed JavaScript.
requiresPjax()
protected method
Property Details
$clientOptions public property
additional options to be passed to the pjax JS plugin. Please refer to the
pjax project page for available options.
$enablePushState public property
whether to enable push state.
$enableReplaceState public property
whether to enable replace state.
public $enableReplaceState |
$linkSelector public property
the jQuery selector of the links that should trigger pjax requests.
If not set, all links within the enclosed content of Pjax will trigger pjax requests.
If set to false, no code will be registered to handle links.
Note that if the response to the pjax request is a full page, a normal request will be sent again.
the HTML attributes for the widget container tag. The following special options are recognized:
- tag: string, the tag name for the container. Defaults to div
This option is available since version 2.0.7.
See also [[\yii\helpers\Html::tag()]].
$submitEvent public property
The jQuery event that will trigger form handler. Defaults to "submit".
pjax timeout setting (in milliseconds). This timeout is used when making AJAX requests.
Use a bigger number if your server is slow. If the server does not respond within the timeout,
a full page load will be triggered.