【发布时间】:2018-02-03 08:25:29
【问题描述】:
这里有一些问题,但问题在于网格视图中的过滤器。
我的问题是我无法将外部表单与 gridview 本身集成,因为我不想使用作为 gridview 一部分的搜索表单。
控制器
public function actionIndex()
{
$searchModel = new BlogSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
观看次数 index.php
<?= Html::button('Filter', ['data-toggle' => 'modal', 'data-target' => '#filter-modal', 'class' => 'btn btn-primary']) ?>
<?php
Modal::begin([
'header' => '<h3>Search Blog</h3>',
'id' => 'filter-modal'
]);
echo $this->render('_search', ['model' => $searchModel]);
Modal::end();
?>
<?php Pjax::begin(); ?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
'title',
'content'
]
]); ?>
<?php Pjax::end(); ?>
_search.php
<?php $form = ActiveForm::begin([
'action' => ['index'],
'method' => 'get',
]); ?>
<?= $form->field($model, 'title') ?>
<?= $form->field($model, 'content') ?>
<div class="form-group">
<?= Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
</div>
<?php ActiveForm::end(); ?>
在“index.php”中,gridview 在 pjax 内,但搜索表单在外面,但即使表单在“Pjax :: begin”内,它也不起作用。
也就是说,当我进行搜索时,页面会重新加载。我只想更新gridview。
【问题讨论】:
-
首先,您是说我的问题是我不能将外部表单与 gridview 本身集成,因为我不想使用属于 gridview 的搜索表单。 然后你到底用的是同一个表格吗?以及提交表单时实际发生的情况
-
不,gridview 有一行(第一行)带有用于过滤结果的输入。但我想使用 _search.php 中生成的搜索表单。提交时页面索引重新加载,而不仅仅是gridview。
-
所以当你输入并按回车时它不工作吗?
-
或者您希望它不重新加载页面并像 gridview 过滤器字段一样工作?