Hello, I am still new in Yii. I do face a situation regarding dependent dropdownlist in yii. Ok, I have 2 tables
-
jenis_peralatan (id,kategori)
-
perkakasan (id,kategori,jenis_peralatan)
I’ve managed to create a dependent dropdwonlist using this code
in my _form.php
<?php
//THE MAIN DROPDOWN LIST
echo $form->dropDownList($model,'jenis_peralatan',
CHtml::listData(JenisPeralatan::model()->findAll(),'kategori','kategori'),
array(
'empty'=>'Pilih Kategori',
'ajax' => array(
'type' => 'POST',
'url' => CController::createUrl('PermohonanPinjaman/namaperalatan'),
'data' => "js:{namaperalatan:$(this).val()}",
'update'=>'#' . CHtml::activeId($model, 'jenis_perkakasan_1'),
)
));
?>
<?php
//THE 1st CHILD DROPDOWN LIST
echo $form->dropDownList($model,'jenis_perkakasan_1',array(),array('prompt'=>'Pilih Perkakasan'));
?>
<?php
//THE 2nd CHILD DROPDOWN LIST
echo $form->dropDownList($model,'jenis_perkakasan_2',array(),array('prompt'=>'Pilih Perkakasan'));
?>
<?php
//THE 3rd CHILD DROPDOWN LIST
echo $form->dropDownList($model,'jenis_perkakasan_3',array(),array('prompt'=>'Pilih Perkakasan'));
?>
<?php
//THE th CHILD DROPDOWN LIST
echo $form->dropDownList($model,'jenis_perkakasan_4',array(),array('prompt'=>'Pilih Perkakasan'));
?>
in my controller
<?php
public function actionNamaperalatan()
{
$data=JenisPeralatan::model()->findAllByAttributes(array('kategori'=>$_POST['namaperalatan']));
$data=CHtml::listData($data,'jenis_perkakasan','jenis_perkakasan');
foreach($data as $value=>$name)
{
echo CHtml::tag('option',
array('value'=>$value),CHtml::encode($name),true);
}
}
?>
The code is working just fine for the 1st child dropdown list. But i need the second, third, forth to be updated when the PARENT dropdownlist is selected.
Is there anyway how to accomplish this task?
How could i add multiple attributes in ‘update’=>’#’ . CHtml::activeId($model, ‘jenis_perkakasan_1’), ?
Is this possible? to add something like this :
‘update’=>’#’ . CHtml::activeId($model, ‘jenis_perkakasan_1,jenis_perkakasan_2,jenis_perkakasan_3,jenis_perkakasan_4’)
I did try that but only affects the 1st child dropdown list.
Please give me some guide on this. Thanks in advance