Это старая версия документа!
html button
<a class="btn btn-primary js_openWindowModal" data-toggle="modal" data-target="#windowModal" href="/form/callme">Callme</a>
bootstrap 4
<!-- Modal -->
<div class="modal fade" id="windowModal" tabindex="-1" aria-labelledby="windowModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body"><img src="preload.gif"></div>
</div>
</div>
</div>
Yii2 js
$this->registerJs("
$(document).on('click', '.js_openWindowModal', function () {
$('#windowModal').modal('show').find('.modal-body').load($(this).href);
});
");
?>
Yii2 Controller
public function actionCallme() {
$model = new CallForm();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
try {
$this->service->create($model);
if (Yii::$app->request->isAjax) {
return Json::encode(array('status' => 'success', 'type' => 'success', 'message' => 'Created successfully.'));
}
else {
Yii::$app->session->setFlash('success', 'Данные изменены');
$url = Url::previous();
return $this->redirect($url ?: Url::to(['index']));
}
} catch (Exception $ex) {
Yii::$app->errorHandler->logException($e);
if (Yii::$app->request->isAjax) {
return Json::encode(array('status' => 'warning', 'type' => 'warning', 'message' => 'Can not created.'));
} else {
Yii::$app->session->setFlash('error', $e->getMessage());
}
}
}
if (Yii::$app->request->isAjax) {
return $this->renderAjax('view', [
'model' => $model,
]);
} else {
return $this->render('view', [
'model' => $model,
]);
}
}