Depedent Dropdown With Custom Query

Hey friends…

How to create a multilevel dropdown with query like this?


SELECT kode, nama

FROM alat

WHERE id

IN (


SELECT id_alat

FROM mutasi_alat

WHERE id

IN (


SELECT id

FROM mutasi_alat

WHERE id

IN (


SELECT MAX( id ) AS id

FROM mutasi_alat

GROUP BY id_alat

)

)

AND id_cabang =4

)

Some refer to the tutorial : Referensi

Finally solved :), but not perfect. Still confused use queryAll or queryRow?

in my view :


<?php echo $form->dropDownListRow($model,'id_cabang',GxHtml::listDataEx(Cabang::model()->findAll(),'id', 'fullName'),

        array( 'prompt'=>'Pilih Cabang',

               'ajax'=>array(

                    'type'=>'POST',

                    'url'=>CController::createUrl('filterCabang'),

                    'data'=>array('id_cabang'=>'js:this.value'),

                    'update'=>'#'.CHtml::activeId($model, 'id_alat'), 

                )

        ));

        ?>

<?php echo $form->dropDownListRow($model,'id_alat',  array(),  array('prompt'=>'Pilih Alat')); ?>



and my controller :


public function actionFilterCabang()

       {

            $data=Yii::app()->db->createCommand("select kode,nama from alat where id in 

                (select id_alat from mutasi_alat where (id in (select id from mutasi_alat where id in 

                (select max(id) AS id from mutasi_alat group by id_alat)) and (id_cabang = '".((int)$_POST['id_cabang'])."')))");

            $row=$data->queryAll();

            $return = CHtml::listData($row, 'id', 'kode');

            foreach ($return as $dataId => $dataName) {

            echo CHtml::tag('option', array('value' => $dataId), CHtml::encode($dataName), true);

            }

       }