Heim >Backend-Entwicklung >PHP-Tutorial >ActiveForm des modalen Popup-Fensters yii2 implementiert die asynchrone Formularüberprüfung von Ajax
Dieser Artikel stellt hauptsächlich die relevanten Informationen zur ActiveForm-Ajax-Formularüberprüfung des yii2-Modal-Popup-Fensters vor. Er ist sehr gut und hat Referenzwert. Ich hoffe, es hilft allen.
Lassen Sie uns eine einfache Erklärung geben, wie yii2 ActiveForm Formulare in Ajax übermittelt, was auch der Schwerpunkt unseres heutigen Themas ist.
In yii2 führt ActiveForm standardmäßig eine clientseitige Überprüfung durch, die Formularübermittlung erfolgt jedoch nicht ohne Aktualisierung. Das heißt, es kommt häufig vor, dass die Seite nach dem Absenden des Formulars aktualisiert wird. Wenn Sie den aktualisierungsfreien Modus aktivieren möchten, müssen Sie nur „enableAjaxValidation“ in ActiveForm aktivieren, wie unten gezeigt
<?php $form = ActiveForm::begin([ 'id' => 'form-id', 'enableAjaxValidation' => true, ] ); ?>
Beachten Sie, dass weder id noch enableAjaxValidation fehlen.
Sehen wir uns die serverseitige Implementierung an
if ($model->load(Yii::$app->request->post())) { Yii::$app->response->format = yii\web\Response::FORMAT_JSON; if ($errors = \yii\widgets\ActiveForm::validate($model)) { return $errors; } else { if($model->save(false)) { return $this->redirect(['index']); } } } return $this->render('create', [ 'model' => $model, ]);
Auf diese Weise können wir einfach das asynchrone Nicht-Aktualisierungs-Übermittlungsformular von yii2 implementieren!
Eigentlich spielt es keine Rolle, ob ich es sage oder nicht. Es wurde hauptsächlich als Referenz für einige faule Leute geschrieben. Kluge Leute werden nach der Lektüre des Titels verstehen, wie das Problem der modalen Formularübermittlung über ActiveForm gelöst werden kann.
Um mit Modal kompatibel zu sein, beachten Sie bitte, dass es sich hier um Kompatibilität und nicht um Implementierung handelt. Wir haben einige geringfügige Änderungen am Programm vorgenommen, die nur Referenzzwecken dienen.
if ($model->load(Yii::$app->request->post())) { if ($model->save()) { if (Yii::$app->request->isAjax) { Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; return ['success' => true]; } return $this->redirect(['index']); } else { if (Yii::$app->request->isAjax) { Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; return \yii\widgets\ActiveForm::validate($model); } } } if (Yii::$app->request->isAjax) { return $this->renderAjax('create', [ 'model' => $model, ]); } else { return $this->render('create', [ 'model' => $model, ]); }
Verwandte Empfehlungen:
So verwenden Sie Join und Join mit Abfragen für mehrere Tabellen in Yii2
Yii2 implementiert die QQ-Internetanmeldung
Yii2 implementiert die Rbac-Berechtigungssteuerung
Das obige ist der detaillierte Inhalt vonActiveForm des modalen Popup-Fensters yii2 implementiert die asynchrone Formularüberprüfung von Ajax. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!