Yii2 kartik ajax delete 保持删除动作

Yii2 kartik ajax delete stay on delete action

我正在使用 Kartik ajax 表单来插入更新和删除。通过 ajax 删除后,我重定向(以模式)到相同的 create/submit 表单,但是当我在删除后提交时再次提交保存表单按钮上的删除按钮。 以下是我的代码。的删除动作。 Return 从删除操作到再次创建操作。

    return [
            'title'=> "Add Partiexsds",
            'content'=>$this->renderAjax('create', [
                'model' => $model,'dataProvider1'=>$dataProvider1,'dataProvider2'=>$dataProvider2,
            ]),
            'footer'=> Html::button('Savea',['class'=>'btn btn-primary','type'=>"submit",
                    'form'=>'caseparties-form','formaction'=>'cfms-hc/caseparties/create'])
                ."<br><br>".$this->renderAjax('_parties', [
                    'model' => $model,'dataProvider1'=>$dataProvider1,'dataProvider2'=>$dataProvider2,
                ])


        ];

创建删除按钮的代码。 函数($url、$model、$key){

                 return \yii\bootstrap\Html::a('',
                   ['caseparties/delete','id'=>$model->ID] , [
                   'class'       => 'btn btn-danger btn-xs glyphicon glyphicon-trash popup-modal',
                   'data-target' => '#ajaxCrudModal',
                   'role'=>'modal-remote',
                   'data-request-method'=>'post',
                   'id'          => 'popupModal',
                   'data-confirm-title'=>'Are you sure?',
                   'data-confirm-message'=>'Are you sure want to remove this entry?'
               ]);


        }

问题出在 form 操作中。

如果您在 chrome 或 firefox 中使用 f12 工具检查您的 DOM 并找到您 form,在按下删除按钮之前和之后您会看到 Kartik ajax 即时将 url 更改为删除操作。

另一方面,保存按钮没有那种逻辑,所以要删除的 url 在您按下保存按钮时和之后仍然存在。

所以,我的建议是,删除默认按钮保存并像使用删除按钮一样使用它:

return \yii\bootstrap\Html::a('',
                   ['caseparties/save','id'=>$model->ID] , [
                   'class'       => 'btn btn-danger btn-xs glyphicon glyphicon-trash popup-modal',
                   'data-target' => '#ajaxCrudModal',
                   'role'=>'modal-remote',
                   'data-request-method'=>'post',
                   'id'          => 'popupModal',

               ]);

所以当你点击它时,它会攻击变形并将动作更改为保存数据的动作。

我喜欢这个。

 $this->registerJs(
'
 $("form").attr("action", "/cfms-hc/caseparties/create");

');