Yii2-pjax搜索保存参数



我有一些每页和网格视图的过滤器。他们放置在pjax中。当我更改一些分页和排序,然后使用每页过滤器时,分页和排序中的参数将丢失。我想保存它。怎么做?我的代码:

<?php Pjax::begin(['id' => 'pjax']) ?>
<?= Html::dropDownList('per-page', Yii::$app->request->get('per-page') != NULL ? Yii::$app->request->get('per-page') : [10 => 10], [1 => 1, 5 => 5, 10 => 10, 25 => 25, 50 => 50, 100 => 100], [
    'onchange' => '
        $.pjax.reload({
            url: "'.Url::to([Yii::$app->controller->action->id, 'id' => Yii::$app->request->get('id')]).'?StandartSearch%5Bdate%5D=" + $('#date').val() + "&per-page=" + $(this).val(),
            container: "#pjax",
        });
    ', 
    'class' => 'form-control',
    'id' => 'per-page'
]) ?>
<?= GridView::widget([
    'id' => 'gridview',
    'dataProvider' => $dataProvider,
    'columns' => [
        // columns
    ],
]); ?>
<?php Pjax::end() ?>

每页过滤器放置在pjax容器中。所以很明显,当pjax事件完成时,它们会丢失。

为了使它们不会丢失当前的选择,可以将每页过滤器放置在pjax之外的表单中。

以及pjax上的$formSelector属性,该属性指向过滤器表单id。

参考:http://www.yiiframework.com/doc-2.0/yii-widgets-pjax.html#$formSelector详细信息

最新更新