저자 : Bailang 출처 : http://www.manks.top/yii2_modal_activeform_ajax.html 이 글의 저작권은 작성자에게 있으며, 재인쇄하셔도 무방합니다. 단, 이 글은 작성자의 동의 없이 보관되어야 합니다. , 원본 텍스트는 기사 연결 페이지의 눈에 띄는 위치에 제공되어야 하며, 그렇지 않으면 당사는 법적 책임을 추구할 권리를 보유합니다.
앞서 yii2에서 모달을 사용하는 방법과 yii2 Gridview List의 업데이트 작업에서 모달을 사용하는 방법에 대해 이야기했습니다. 모달이 끝나면 새로운 주제를 시작할 수 있다고 생각했지만 실제로는 상상을 초월하는 문제가 자주 발생합니다. 모달 팝업창 없이 제출된 양식을 확인하는 방법에 대한 문제가 또 나왔습니다!
이 문제의 본질은 실제로 모달과 관련이 거의 없습니다. 문제의 핵심은 근본적인 모순을 해결하고 우리 기사의 문제를 해결하는 ActiveForm의 비동기 검증에 있습니다. 그런데 모달은 정말 할 말이 없습니다. 나중에 필요하면 다시 바꾸겠습니다.
yii2에서 ActiveForm은 기본적으로 클라이언트 확인을 수행하지만 양식 제출 시 새로 고침이 필요하지 않습니다. 즉, 양식을 제출한 후 페이지가 새로 고쳐지는 경우가 종종 있습니다. 새로 고침 없음 모드를 활성화하려면 아래와 같이 ActiveForm에서 활성화AjaxValidation만 활성화하면 됩니다.
<?php $form = ActiveForm::begin([ 'id' => 'form-id', 'enableAjaxValidation' => true, 'validationUrl' => Url::toRoute(['validate-form']), ] ); ?>
id와 활성화AjaxValidation 모두 누락되어 있습니다.
validateUrl에 대해 설명하겠습니다. 이 매개변수를 설정하지 않으면 주소는 현재 경로로 기본 설정되며 현재 경로는 양식 입력이 포커스를 잃으면 데이터 수정 사항이 변경된다는 사실이 궁금할 것입니다. 제출되었습니다. 백엔드에서 처리되었나요? 이는 우리가 원하는 것이 아닌 경우가 많습니다. 이때 요청한 작업의 의미는 비동기 검증을 수행한다는 것입니다. 구체적인 구현을 살펴보겠습니다.
//表单提交操作,基本上不需要做改动 if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['index']); } } return $this->render('create', [ 'model' => $model, ]); // @see http://www.manks.top/yii2_modal_activeform_ajax.html // 看主要的验证操作,该操作是表单字段失去焦点时异步验证,同时如果直接提交表单,也会先执行该操作进行验证 public function actionValidateForm () { Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; $model = new Model(); $model->load(Yii::$app->request->post()); return \yii\widgets\ActiveForm::validate($model); }
이런 식으로 yii2 비동기 비새로 고침 양식 확인이 간단하게 구현됩니다!
이번 호의 주제는 짧지만 내용은 훌륭하여 여러분에게 도움이 되기를 바랍니다!
[현재 국내 대부분의 웹사이트에서는 기사 수집 빈도가 매우 높고, 일부 웹사이트에서는 원문의 출처를 밝히지 않는 경우도 있는 점을 고려하여, 원저자는 시청자 여러분께서 혹시 문제가 있을 경우 원문을 읽어보실 수 있기를 바랍니다. 오해의 소지가 없도록 모든 기사를 업데이트하세요! ]
원문 보기
위에서는 관련 내용을 포함하여 yii2 모달 팝업 창의 ActiveForm ajax 양식 비동기 검증을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.