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");
');
我正在使用 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");
');