Posted in Yii 11 years ago 2 min read
<td style="width:240px;"><?php
$list = CHtml::listData(MasterPropinsi::model()->findAll(array('order' => 'id_prop')), 'id_prop', 'nama_propinsi');
echo $form->dropDownList($model, 'id_prop', $list,
array(
'empty' => '- Pilih Propinsi -',
'ajax' => array(
'type' => 'POST',
'url' => CController::createUrl('dynamickabkota'),
'update' => '#' . CHtml::activeId($model, 'id_kab_kota'),
),
'style'=>'margin-top:10px;float:right;margin-left:8px;margin-right:8px;'
));
?>
</td>
Source untuk bagian Controller:
public function actionDynamicKabKota() {
$data = MasterKabKota::model()->findAll('id_prop=:id_prop', array(':id_prop' => $_POST['ModeldiForm']['id_prop']));
$data = CHtml::listData($data, 'id_kab_kota', 'nama_kab_kota');
foreach ($data as $value => $name) {
echo CHtml::tag('option', array('value' => $value), CHtml::encode($name), true);
}
}
Source code untuk bagian view pada dropdown kabupaten/kota:
<tr>
<td style="width:40px;text-align:center;">2.</td>
<td><?php echo $form->labelEx($model,'id_kab_kota'); ?><?php echo $form->error($model,'id_kab_kota', array('style'=>'margin-top:10px;float:right;margin-left:8px;margin-right:8px;')); ?></td>
<td>
<?php
echo $form->dropDownList($model, 'id_kab_kota', array(), array('empty' => '- Pilih Kabupaten/Kota -', 'style'=>'margin-top:10px;float:right;margin-left:8px;margin-right:8px;'));
?>
</td>
</tr>
Untuk database,, ada dua tabel yaitu master_propinsi (id_prop, nama_prop), dan master_kab_kota (id_kab_kota, id_prop, nama_kab_kota). Bagian model default aja digenerate dari generator Gii.
Sekian tutorial (atau catatan) tentang membuat dependent dropdown di Yii.
Semoga bermanfaat.