Tengo la siguiente situación: Debo poder seleccionar mas de una localidad para una determinada provincia.
Por lo que tengo un dropDownList de provincias, al seleccionar una provincia de este dropDown, se actualiza un select2 con las localidades de la provincia seleccionada.
Logro que al seleccionar una provincia cambien las opciones disponibles del select2, lo que no consigo es que al cambiar la selección, se borren en el select2 las opciones elegidas anteriormente. ¿Que es lo que me faltaría para conseguir esto?
En la vista tengo lo siguiente:
<?php echo $form->dropDownListRow($persona,
'id_provincia',
CHtml::listData(Provincia::model()->findAll(),'id_provincia','descripcion'),
array('ajax' => array('type' => 'POST',
'url' => CController::createUrl('Localidad/dinamycLocalidadesPorProvincia'),
'update' => '#Persona_LocalidadesPersona',
),
)
);
?>
<?php echo $form->select2Row($persona, 'LocalidadesPersona',
array('asDropDownList' => true,
'data' => CHtml::listData(Localidad::model()->findAll(array('condition'=>'id_provincia='.$persona->id_provincia)), 'id_localidad', 'descripcion'),
'options' => array('placeholder' => 'Localidades',
'width' => '48%',
'allowClear' => true,),
'multiple' => 'multiple',
)
)
?>
Y en LocalidadController tengo lo siguiente:
public function actionDinamycLocalidadesPorProvincia()
{
$data=Localidad::model()->findAll(array('condition'=>'id_provincia=:id_provincia',
'order'=>'descripcion',
'params'=> array(':id_provincia'=>(int) $_POST['Persona']['id_provincia'])));
$data=CHtml::listData($data,'id_localidad','descripcion');
foreach($data as $value=>$name)
{
echo CHtml::tag('option', array('value'=>$value),CHtml::encode($name),true);
}
}
Agradecería si me pueden ayudar.