国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

yii2 modal彈窗之ActiveForm ajax表單異步驗證

2024-05-04 23:47:05
字體:
來源:轉載
供稿:網友

前面我們講述了yii2中如何使用modal以及yii2 gridview列表內更新操作如何使用modal的問題,本以為modal要告一段落可以開始新的話題了,但是實際問題往往超乎想像,這不modal彈窗提交的表單說是怎么驗證的問題又出來了,又出來了!

首先撇開modal不談,我們就yii2 ActiveForm如何以Ajax的方式提交表單做一個簡單的說明,這也是我們今天主題的重點,modal確實沒啥好說了。后面若是有我再把話改回來。

yii2中,ActiveForm默認做了客戶端驗證,但是表單的提交,卻不是無刷新的。也就是常常看到的表單提交后頁面會刷新。如果想要開啟無刷新的模式,只需要在ActiveForm開始開啟enableAjaxValidation即可,像下面這樣

<?php $form = ActiveForm::begin(['id' => 'form-id','enableAjaxValidation' => 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(['index']); }}}return $this->render('create', ['model' => $model,]);

如此一來就簡單的實現了yii2異步無刷新提交表單了!

其實下面說與不說已經不重要了,主要是寫給一些懶人參考吧。聰明的人看了標題就應該明白了如何解決modal通過ActiveForm提交表單的問題。

為了兼容modal,注意我們說的是兼容而不是實現,我們對程序稍稍做了些改動,僅做參考。

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,]);}

以上所述是小編給大家介紹的yii2 modal彈窗之ActiveForm ajax表單驗證的相關知識,希望對大家有所幫助,如果大家想了解更多內容敬請關注VeVb武林網網站!


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 峨山| 蛟河市| 通辽市| 晋城| 定远县| 阳春市| 内江市| 延津县| 西吉县| 昌邑市| 黔南| 禹城市| 开鲁县| 崇义县| 九龙县| 伊宁县| 正阳县| 南川市| 湖北省| 道孚县| 响水县| 南宫市| 翁源县| 军事| 神农架林区| 永胜县| 鄂尔多斯市| 江陵县| 阳东县| 永吉县| 西峡县| 马山县| 邻水| 股票| 思茅市| 中阳县| 韩城市| 徐州市| 桑植县| 商城县| 资中县|