Yii - Validasi AJAX

Validasi nama pengguna sebaiknya hanya dilakukan di sisi server karena hanya server yang memiliki informasi yang diperlukan. Dalam kasus ini, Anda dapat menggunakan validasi berbasis AJAX.

Step 1 - Untuk mengaktifkan validasi AJAX, modifikasi file registration lihat seperti ini.

<?php
   use yii\bootstrap\ActiveForm;
   use yii\bootstrap\Html;
?>
  
<div class = "row">
   <div class = "col-lg-5">  
   
      <?php $form = ActiveForm::begin(['id' => 'registration-form', 'enableAjaxValidation' => true]); ?>  
      <?= $form->field($model, 'username') ?> <?= $form->field($model, 'password')->passwordInput() ?> <?= $form->field($model, 'email')->input('email') ?> <?= $form->field($model, 'country') ?> <?= $form->field($model, 'city') ?> <?= $form->field($model, 'phone') ?>  
      <div class = "form-group">             
         <?= Html::submitButton('Submit', ['class' => 'btn btn-primary', 
            'name' => 'registration-button']) ?>
      </div>
      
      <?php ActiveForm::end(); ?>  
   </div>
</div>

Kami juga harus menyiapkan server, sehingga dapat menangani permintaan AJAX.

Step 2 - Ubah actionRegistration metode dari SiteController cara ini.

public function actionRegistration() { 
   $model = new RegistrationForm(); 
   if (Yii::$app->request->isAjax && $model->load(Yii::$app->request>post())) { Yii::$app->response->format = Response::FORMAT_JSON; 
      return ActiveForm::validate($model); } return $this->render('registration', ['model' => $model]); 
}

Step 3 - Sekarang, pergilah http://localhost:8080/index.php?r=site/registration, Anda akan melihat bahwa validasi formulir dilakukan oleh permintaan AJAX.