yii2 モーダルポップアップウィンドウの ActiveForm は、ajax の非同期フォーム検証を実装します

*文
リリース: 2023-03-18 21:24:01
オリジナル
1886 人が閲覧しました

この記事は主に yii2 モーダル ポップアップ ウィンドウの ActiveForm ajax フォーム検証に関する情報を紹介します。非常に優れており、必要な友人は参考にすることができます。お役に立てれば幸いです。

今日のテーマでもある、yii2 ActiveFormを使用してAjaxでフォームを送信する方法について簡単に説明します。

yii2 では、ActiveForm はデフォルトでクライアント側の検証を行いますが、フォームの送信は更新不要ではありません。つまり、フォームが送信された後にページが更新されることがよくあります。リフレッシュフリー モードを有効にしたい場合は、以下に示すように、ActiveForm でenableAjaxValidation を有効にするだけです

<?php $form = ActiveForm::begin([
&#39;id&#39; => &#39;form-id&#39;,
&#39;enableAjaxValidation&#39; => true,
]
); ?>
ログイン後にコピー

id もenableAjaxValidation も省略できないことに注意してください。

それでは、サーバー側の実装を見てみましょう

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([&#39;index&#39;]); 
}
}
}
return $this->render(&#39;create&#39;, [
&#39;model&#39; => $model,
]);
ログイン後にコピー

このようにして、yii2 の非同期非リフレッシュ送信フォームを簡単に実装できます。

実際、これは私が以下に言うかどうかは関係ありません。主に一部の怠け者が参考にするために書いたものです。賢い人はタイトルを読めば、ActiveForm を介してモーダル送信フォームの問題を解決する方法を理解できるでしょう。

モーダルと互換性を持たせるために、実装ではなく互換性について話していることに注意してください。参考のためにのみプログラムに若干の変更を加えています。

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 [&#39;success&#39; => true];
}
return $this->redirect([&#39;index&#39;]);
} 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(&#39;create&#39;, [
&#39;model&#39; => $model,
]);
} else {
return $this->render(&#39;create&#39;, [
&#39;model&#39; => $model,
]);
}
ログイン後にコピー

関連する推奨事項:

Yii2 で join と joinwith のマルチテーブル関連クエリを使用する方法

Yii2 は QQ 相互接続ログインを実装します

Yii2 は rb を実装しますAC許可制御

以上がyii2 モーダルポップアップウィンドウの ActiveForm は、ajax の非同期フォーム検証を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!