>백엔드 개발 >PHP 튜토리얼 >yii2 모달 팝업 창의 ActiveForm은 Ajax의 비동기 양식 확인을 구현합니다.

yii2 모달 팝업 창의 ActiveForm은 Ajax의 비동기 양식 확인을 구현합니다.

*文
*文원래의
2018-01-02 11:07:471904검색

이 글은 주로 yii2 모달 팝업창의 ActiveForm ajax 폼 검증 관련 정보를 소개하고 있어 도움이 필요한 친구들이 참고할 수 있습니다. 그것이 모두에게 도움이 되기를 바랍니다.

오늘 주제이기도 한 yii2 ActiveForm을 사용하여 Ajax에서 양식을 제출하는 방법에 대해 간단하게 설명하겠습니다.

yii2에서 ActiveForm은 기본적으로 클라이언트 측 확인을 수행하지만 양식 제출 시 새로 고침이 필요하지 않습니다. 즉, 양식을 제출한 후 페이지가 새로 고쳐지는 경우가 종종 있습니다. 새로 고침 없음 모드를 활성화하려면 아래와 같이 ActiveForm에서 활성화AjaxValidation을 활성화하기만 하면 됩니다.

<?php $form = ActiveForm::begin([
&#39;id&#39; => &#39;form-id&#39;,
&#39;enableAjaxValidation&#39; => 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([&#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에서 다중 테이블 관련 쿼리로 조인 및 조인을 사용하는 방법

Yii2는 QQ 상호 연결 로그인을 구현합니다.

Yii2는 rbac 권한을 구현합니다. 제어

위 내용은 yii2 모달 팝업 창의 ActiveForm은 Ajax의 비동기 양식 확인을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.