ActiveForm은 어떻게 비동기적으로 제출되나요?
1. 먼저 뷰 레이어의 ActiveForm에서 다음 속성을 구성합니다
), //此处为请求地址 Url用法查看手册 'enableAjaxValidation' => true, 'validationUrl' => Url::to(['post/validate']), //数据异步校验 ]); 2.配置好表单属性之后,在控制器中添加对应的方法 validateUrl对应的方法 //该方法是异步校验字段,输入框失去焦点之后自动会自动请求改地址 public function actionValidate(){ $model = new PostModel(); if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) { Yii::$app->response->format = Response::FORMAT_JSON; return ActiveForm::validate($model); } } action对应的方法 //该方法是数据保存方法 public function actionSave() { $model = new PostCatModel(); if ($model->load(Yii::$app->request->post())) { Yii::$app->response->format = Response::FORMAT_JSON; return ['status' => $model->save()]; } }
또한 제출된 js도 작성해야 합니다
[code=php;toolbar:false">//此处点击按钮提交数据的jquery $('.btn').click(function () { $.ajax({ url: "/post/save.html", type: "POST", dataType: "json", data: $('form').serialize(), success: function(Data) { if(Data.status) alert('保存成功'); else alert('保存失败') }, error: function() { alert('网络错误!'); } }); return false; });
: actionSave에 해당 네임스페이스를 추가해야 하며 그렇지 않으면 오류가 보고됩니다
예: Response 및 ActiveForm
use yiiwebResponse; use yiiootstrapActiveForm;[/code]
위는 비동기 제출 방법입니다. ActiveForm에 해당
위는 Yii2.0 ActiveForm 컴포넌트의 ajax 제출 방식입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!