이 글은 주로 yii2 모달 팝업창의 ActiveForm ajax 폼 검증 관련 정보를 소개하고 있어 도움이 필요한 친구들이 참고할 수 있습니다. 그것이 모두에게 도움이 되기를 바랍니다.
오늘 주제이기도 한 yii2 ActiveForm을 사용하여 Ajax에서 양식을 제출하는 방법에 대해 간단하게 설명하겠습니다.
yii2에서 ActiveForm은 기본적으로 클라이언트 측 확인을 수행하지만 양식 제출 시 새로 고침이 필요하지 않습니다. 즉, 양식을 제출한 후 페이지가 새로 고쳐지는 경우가 종종 있습니다. 새로 고침 없음 모드를 활성화하려면 아래와 같이 ActiveForm에서 활성화AjaxValidation을 활성화하기만 하면 됩니다.
<?php $form = ActiveForm::begin([ 'id' => 'form-id', 'enableAjaxValidation' => true, ] ); ?>
id나 활성화AjaxValidation이 누락될 수 없다는 점에 유의하세요.
그럼 서버 측 구현을 살펴보겠습니다
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 비동기 비새로고침 제출 양식을 간단하게 구현할 수 있습니다!
사실 아래에서 말하든 말든 상관은 없습니다. 주로 일부 게으른 사람들이 참고하기 위해 쓴 것입니다. 똑똑한 사람들은 제목을 읽고 나면 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 ['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에서 다중 테이블 관련 쿼리로 조인 및 조인을 사용하는 방법
위 내용은 yii2 모달 팝업 창의 ActiveForm은 Ajax의 비동기 양식 확인을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!