Yii2 - 搜索Gridview提交表单

时间:2016-05-19 18:00:32

标签: php forms gridview yii2

我有一个表单,它使用Gridview中的选定行作为表单输入。问题是,当我尝试搜索Gridview时,它会提交表单。我已经尝试将Gridview封装在Pjax中并检查控制器中的请求是否为isPjax。它似乎没有工作,也许我错过了一些东西。

我希望能够让用户在表单中搜索相关数据,选择它,从下拉列表中选择一个项目,然后提交表单。有什么建议吗?

这是我的观点:

    <?php $form = ActiveForm::begin([]) ?>
    <?php \yii\widgets\Pjax::begin() ?>
    <?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],
            ['class' => 'yii\grid\CheckboxColumn'], //to select rows for the form
            'name',
            [
                'attribute' => 'manager.name',
                'label' => 'Manager',
            ],
        ],
    ]); ?>
    <?php \yii\widgets\Pjax::end() ?>
    <?= $form->field($model, 'id_questionnaire')->dropDownList($questionnaireItems) ?>
        <div class="form-group">
            <?= Html::submitButton(Yii::t('app', 'Submit'), ['class' => 'btn btn-success btn-block']) ?>
        </div>
    <?php ActiveForm::end() ?>

在我的控制器中,我首先检查Pjax,但这不起作用:

    if(Yii::$app->request->isPjax){
        //search
    }
    if($model->load(Yii::$app->request->post())) {
        if (Yii::$app->request->post('selection')) {
            foreach (Yii::$app->request->post('selection') as $id) {
                //save the model
            }
        }
        return $this->redirect(['questionnaire/index']);
    }

0 个答案:

没有答案
相关问题