Lo estoy implementando:
***********************
Modelo: CombosDependientes
Controlador: CombosDependientes
Vista: _form.php
Haciendo uso de los modelos:
****************************
Departamento:
codDepartamento
strDepartamento
Municipio:
codMunicipio
strMunicipio
codDepartamento
Corregimiento:
codCorregimiento
strCorregimiento
codMunicipio
codDepartamento
En el controlador:
Código
<?php // Funcion para llenar combobox dependiente de lo que seleccione el usuario en Departamento/Municipio/Corregimiento public function actionDynamicMunicipios() { $data = Municipio::model()->findAll('codDepartamento=:parent_id', $data = CHtml::listData($data,'codMunicipio','strMunicipio'); foreach($data as $id => $value) { } } public function actionDynamicCorregimientos() { $data = Corregimiento::model()->findAll('codMunicipio=:parent_id', $data = CHtml::listData($data,'codCorregimiento','strCorregimiento'); foreach($data as $id => $value) { } } ?>
En la vista:
Código
<!-- INICIO COMBOS DEPENDIENTES --> <div class="row"> <?php echo $form->labelEx($model,'Departamento'); ?> <?php $departamento = new CDbCriteria; $departamento->order = 'strDepartamento ASC'; ?> <?php echo $form->dropDownList($model,'codDepartamento',CHtml::listData(Departamento::model()->findAll($departamento),'codDepartamento','strDepartamento'), 'type' => 'POST', 'url' => CController::createUrl('CombosDependientes/dynamicMunicipios'), 'update' => '#CombosDependientes_codMunicipio' ),'prompt' => 'Seleccione un Departamento...' ) ); ?> <?php echo $form->error($model,'codDepartamento'); ?> </div> <div class="row"> <?php echo $form->labelEx($model,'Municipio'); ?> <?php $municipio = new CDbCriteria; $municipio->order = 'strMunicipio ASC'; ?> <?php echo $form->dropDownList($model,'codMunicipio',CHtml::listData(Municipio::model()->findAll($municipio),'codMunicipio','strMunicipio'), 'type' => 'POST', 'url' => CController::createUrl('CombosDependientes/dynamicCorregimientos'), 'update' => '#CombosDependientes_codCorregimiento' ),'prompt' => 'Seleccione un Municipio...' ) ); ?> <?php echo $form->error($model,'codMunicipio'); ?> </div> <div class="row"> <?php echo $form->labelEx($model,'Corregimiento'); ?> <?php echo $form->dropDownList($model,'codCorregimiento',array('Seleccione un Corregimiento...'));?> <?php echo $form->error($model,'codCorregimiento'); ?> </div> <!-- FIN COMBOS DEPENDIENTES -->
El codigo trabaja perfecto