[Ask] Cara Validasi isian di client menggunakan data di server

Langsung aja ke topiknya, saya mau tanya gimana caranya bikin validasi dini di yii tp validasinya berdasarkan data yang ada di database server…

Misalnya kayak pertama kali register email (gambar di attachment)

kita masukin username yg kita mau, tp ketika diisi itu secara realtime kita bisa ngecek ke server apakah yg diinputkan di textfield itu udah ada belum di server tanpa harus refresh page.

Thx anyway… :)

2459

Capture.PNG

validasinya di buat di Model, kemudian di deklarasikan di rule contoh nih…





public function rules()

	{

		// NOTE: you should only define rules for those attributes that

		// will receive user inputs.

		return array(

			array('username','authenticate','on'=>'create'),

		);

	}

	

public function authenticate()

    {

        $exist=self::model()->exists('username=:vuser',array(':vuser'=>$this->username)) ;

        if(!empty($exist))

            $this->addError('username','Username sudah digunakan..!');

    }



itu kan ngecek valitas username…kalo email tinggal ganti aja gan…!

oh ya jangan lupa di view… terutama di form dibuat ajaxvalidation=>true





<?php $form=$this->beginWidget('CActiveForm', array(

	'id'=>'account-form',

	'enableAjaxValidation'=>true,

)); ?>



mudah2an membantu… jangan lupa voet nya…he…he

thx bro, btw itu harus submit dulu ya?

kalo sy mau buatnya dia ngecek ke server pas ada event onChange ke textfilednya ato ada tombol cek gitu gmn ya?

pake jQuery aja gan!

untuk caranya cukup mudah dan tutorialnya banyak.

ajaxVAlidationnya dah saya ubah jd true tp knpa ga ada perubahan ya?

ajaxnya jalan pada saat onChange ato apa ya?

soalnya ga terjadi apa, jd tetep harus klik submit button dulu baru bisa validasi.

kalo di rulesnya cuma pake kaya gini ga bisa???


array('username', 'unique', 'on'=>'insert'),  

array('email', 'unique', 'on'=>'insert, update'),  

q pake itu berhasil soalnya…

Kalo masalah rulenya sih udah jalan semua, yg jadi masalah adalah gimana biar rulenya itu jalan sebelum teken tombol createnya. Sy udah cb ajaxValidation nya set jd true tp ttp ga berpengaruh, ttp harus teken tombol create dulu untuk melakukan validasi

kalo yg ini gimana gan?


'clientOptions' => array(

	'validateOnSubmit' => true,

	'validateOnChange' => true,

),

sudah ketemu belum yang ini??

belum ketemu bro,

jadinya ga pake begituan…

kalo boleh sharing bro disini, thx…

kalo ajaxvalidation sudah di aktifkan maka di controller juga harus di aktifkan bagian yang




$this->performAjaxValidation($model);