如何在yii2中关闭boostrap对话框?
我正在尝试这样做:如何在yii2中关闭boostrap对话框?,yii2,dialog,modal-dialog,Yii2,Dialog,Modal Dialog,我正在尝试这样做: 通过URL,用按钮打开引导对话框。控制器中Url的操作是“myController/updateDialog” 通过打开对话框,这将加载一个页面(myController/updateDialog),其中包含一个表单来填充数据(表单有一个提交按钮) 如果我通过点击按钮提交表单,在我的控制器中,我尝试关闭对话框并刷新原始页面中的一些内容,这是我用JS做的。但它不起作用。我总是用新的URL在空白处获得窗口导航器;我希望保留调用对话框的原始页面,以查看更改,方法与Yii 1.x中的
myController/updateDialog
),其中包含一个表单来填充数据(表单有一个提交按钮)Yii 1.x
中的cguidialog
相同public function actionUpdatedialog($id)
{
$model = $this->findModel($id);
if ($model->load(Yii::$app->request->post() && $model->save() )) {
$this->view->registerJs("window.close(); window.opener.fn.yiiGridView.update('books-heads'); return false;",
$this->view::POS_HEAD);//try close and finally
die(); //finally
}
return $this->render('update', [
'model' => $model,
]);
}
我试过,用了:
“window.close();”
和
“$(#Mymodal).modal('hide');”
和其他人,但无法对其进行排序。您应该通过ajax提交表单,接受并确定返回值。如果成功,请调用$(“#您的模式框”).modal('hide')
关闭对话框。e、 g:
public function actionUpdatedialog($id)
{
$model = $this->findModel($id);
if ($model->load(Yii::$app->request->post() && $model->save() )) {
\Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
return ['code' => 200, 'message' => 'success'];
}
return $this->render('update', [
'model' => $model,
]);
}
在页面中:
$("#formName").on('submit', function () {
// or use ajax
fetch(...).then(response => {
response.json().then(json => {
if (200 === json.code) {
$("yourModalBox").modal('hide');
} else {
alert(json.message);
}
});
});
});
Google Translate提供的答案翻译,希望这对您有所帮助。为什么要关闭控制器动作中的模式?如何选择模式添加视图代码。