How to Create TbTypeahead in Yii Framework with ajax

1. Buat terlebih dahulu pada model

 // Untuk auto complete
 public function Autocomplete($term)
 {

 $qtxt ="SELECT `JudulPertanyaan` FROM `Tbl_Konsultasi` WHERE `JudulPertanyaan` LIKE '%$term%'"; 
 $command =Yii::app()->db->createCommand($qtxt);
 $command->bindValue(":JudulPertanyaan", $term.'%', PDO::PARAM_STR);
 $res =$command->queryColumn();
 return $res;
 }


2. Buka Pada controller  sebagai generate data ajaxnya Dan tambahkan public function accessRules() agar bisa di baca oleh browser

 
// Untuk auto complete
 public function actionAutocomplete()
 {

 $res =array();

 if (isset($_GET['term'])) {

 $term = $_GET['term'];
 $res = TTKonsultasi::model()->Autocomplete($term);
 }

 echo CJSON::encode($res);
 Yii::app()->end();

 }

3. Buka View form yang akan di buat auto complete with TbTypeahead

$this->widget('bootstrap.widgets.TbTypeahead',array(
  'model'=>$model,
  'attribute'=>'codice_da',
  'options'=> array(
    'source'=>'js:function(query,process){
      $.ajax({
        url: "'.$this->createUrl('konsultasi/autocomplete').'",
        type: "GET",
        dataType:"json",
        data: {term: query},
        success: process,
      });
    }', 
  ),
  'htmlOptions'=>array (
    'style'=>'text-transform: uppercase',
  ),
));

Leave a Reply