@EVOSandru6

Как в Yii2 custom фильтр _search файла с помощью pjax, чтобы ListView и GridView обновлялись без перезагрузки страницы?

Добрый день,

Есть контроллер:
public function actionIndex()
    {
        $searchModel = new OffersSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

        return $this->render('index', [
            'dataProvider' => $dataProvider,
            'searchModel' => $searchModel,
        ]);
    }


index.php:

<?php Pjax::begin(['id' => 'notes']) ?>
                            <?= GridView::widget([
                                'dataProvider' => $dataProvider,
                                'filterModel' => $searchModel,
                                'columns' => [
                                    ['class' => 'yii\grid\SerialColumn'],
                                    'id',
                                    'name',
                                    ['class' => 'yii\grid\ActionColumn'],
                                ],
                            ]); ?>
                        <?php Pjax::end() ?>


js:

$("#search_note").on("pjax:end", function() {
        $.pjax.reload({
            container:"#notes"
        });  
    });


_search.php файл:

<?php yii\widgets\Pjax::begin(['id' => 'search_note']) ?>
        <?php $form = ActiveForm::begin([
            'options' => ['data-pjax' => true ],
            'method' => 'post',
        ]); ?>
...
        <?= $form->field($model, 'id')->textInput([
            'type'=>'number'
        ]) ?>
...

            <?= Html::submitButton(Yii::t('app', Yii::t('app','search')), ['class' => 'btn btn-primary']) ?>
            <?= Html::resetButton(Yii::t('app', Yii::t('app','reset')), ['class' => 'btn btn-default']) ?>
     
   <?php ActiveForm::end(); ?>

    <?php yii\widgets\Pjax::end() ?>


Если я меняю

'method' => 'post',

на

'method' => 'get',

То фильтр работает, но после перезагрузки страницы и все GET параметры летят в адресную строку.

Хотелось бы без перезагрузки страницы и желательно данные с формы посылать постом.

Подскажите, что я делаю не так?

И еще вопрос, может кто-нибудь знает - каким образом в кастумной форме передать вид сортировки, чтобы его скушал dataProvider? Актуально для ListView.
  • Вопрос задан
  • 1591 просмотр
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Пригласить эксперта
Ваш ответ на вопрос

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

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