Yii2 ActiveForm和GridView上的Yi2 Pjax[让它工作起来]

Yii2 ActiveForm和GridView上的Yi2 Pjax[让它工作起来],yii2,pjax,Yii2,Pjax,我有一个网格视图 <?php Pjax::begin(['id' => 'members']) ?> <?= GridView::widget([ 'dataProvider' => $dataProvider, // 'filterModel' => $searchModel, 'columns' => [ ['header'=>'Remove Member',




我有一个网格视图

<?php Pjax::begin(['id' => 'members']) ?> 

<?= GridView::widget([
        'dataProvider' => $dataProvider,
        // 'filterModel' => $searchModel,
        'columns' => [
        ['header'=>'Remove Member',
                        'value'=> function($data)
                        { 
                            return  Html::a(Yii::t('app', ' {modelClass}', [
                                'modelClass' =>'',
                            ]), ['members/stl_remove','id'=>$data->id], 
                            ['class' => 'btn btn-link fa fa-times fa-2x pop']
                            );  
                        },
            'format' => 'raw'
            ],
      ['class' => 'yii\grid\ActionColumn','template'=>'{update}'],
        ],
    ]); ?>
    <?php Pjax::end() ?>

我无法将数据加载到gridview中。我点击链接modal popsup,然后提交,然后我进入索引页面,页面重新加载,这就是我如何让它工作的。在delete.php中,我做了以下更改

<?php $form = ActiveForm::begin([
    'options' => ['data-pjax' => true,
                  'id'=> 'dynamic-form111',
                  // 'validationUrl' => 'validation-rul'
                   ]]); ?> 

    <div class="row">
        <div class="col-md-5">

            <?php echo $form->field($model, 'remarks')->dropDownList(['death' => 'Death',
                'marriage' => 'Marriage', 'house_shift' => 'House Shift'],['prompt'=>'Select'])
                ->label("Reason For Removal"); ?>

        </div>
    </div>
    <div class="form-group">
        <?= Html::submitButton($model->isNewRecord ? Yii::t('app', 'Remove') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
    </div>

    <?php ActiveForm::end(); ?>

通过ajax检查delete.php是否已成功提交如果是,则使用pjax重新加载gridview并关闭模式。

无错误我被重定向到没有布局的查看页面:-)尝试
$model->save(false)。但我认为这不是问题。我试过了,但在执行行动的其他部分时效果不一样。拦截操作并检查发布的数据。尝试
if($model->save()){return$this->redirect(['index']);}
public function actionStl_remove($id,$ajax=0)
    {
        $model              =   $this->findModel($id);
        $model_delete       =   new Members();
        $model->scenario    =   "remove";

        if ($model_delete->load(Yii::$app->request->post())) 
        {
            $model->remarks =   $model_delete->remarks;
            $model->status  =   1;
            $model->save();
            // $model = new Members();
            // return $this->redirect(['index']);
        }
        else
        {
        return $this->renderAjax('delete', [
                'model' =>  $model_delete,
                'id'    =>  $id,
            ]);
        }
    }
<?php $form = ActiveForm::begin([
    'options' => ['data-pjax' => true,
                  'id'=> 'dynamic-form111',
                  // 'validationUrl' => 'validation-rul'
                   ]]); ?> 

    <div class="row">
        <div class="col-md-5">

            <?php echo $form->field($model, 'remarks')->dropDownList(['death' => 'Death',
                'marriage' => 'Marriage', 'house_shift' => 'House Shift'],['prompt'=>'Select'])
                ->label("Reason For Removal"); ?>

        </div>
    </div>
    <div class="form-group">
        <?= Html::submitButton($model->isNewRecord ? Yii::t('app', 'Remove') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
    </div>

    <?php ActiveForm::end(); ?>
<?php
$this->registerJs(
    'jQuery(document).ready(function($){
                $(document).ready(function () {
                    $("body").on("beforeSubmit", "form#dynamic-form111", function () {
                        var form = $(this);
                        // return false if form still have some validation errors
                        if (form.find(".has-error").length) 
                        {
                            return false;
                        }
                        // submit form
                        $.ajax({
                            url    : form.attr("action"),
                            type   : "post",
                            data   : form.serialize(),
                            success: function (response) 
                            {

                                $("#ajaxModal").modal("toggle");
                                $.pjax.reload({container:"#countries"}); //for pjax update

                            },
                            error  : function () 
                            {
                                console.log("internal server error");
                            }
                        });
                        return false;
                     });
                    });

    });'
);
?>