Hola amigos,
tengo un problema con dropdown dependientes.
No me funciona. Quiero que cuando un usuario sleccione un cap en el menu agenzia se le aparacen solo las agenzias que estan liadas al cap seleccionado por cap_id.
Me estoy volviendo loco con este menu y no me sale. Por que aun que un usuario seleccione cualquier cap en el menu agenzias le salen todas la agenzias mientras tendria que salir solo la agenzia que esta liada a ese cap.
Tengo dos tablas
--
-- tabla `cap`
--
CREATE TABLE IF NOT EXISTS `cap` (
`id` int(100) unsigned NOT NULL AUTO_INCREMENT,
`cap` varchar(5) NOT NULL,
`comune` varchar(255) NOT NULL,
`provincia` varchar(2) NOT NULL,
`regione` varchar(255) NOT NULL,
`agenzia_id` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4509 ;
--
-- tabla `agenzia`
--
CREATE TABLE IF NOT EXISTS `agenzia` (
`id` int(100) unsigned NOT NULL AUTO_INCREMENT,
`cap_id` varchar(255) NOT NULL,
`nome` varchar(255) NOT NULL,
`codice` varchar(255) NOT NULL,
`nome_completo` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;
Mi formulario es esto:
......................
<?php
$htmlOption=array(
"ajax"=>array(
"url"=>$this->createUrl("AgenziaByCap"),
"tyope"=>"POST",
"update"=>"#Telegramma_agenzia_dest",
),
);
?>
<?php echo $form->labelEx($model,'cap_id'); ?><br />
<?php echo $form->dropDownList($model,'cap_id', $model->getMenuCap(), array("empty"=>"Digita il Cap"),$hemlOptions);
<?php echo "<font color='#000000'><b>" .$form->error($model,'cap_id')."</b></font>"; ?>
<?php echo $form->labelEx($model,'agenzia_dest'); ?><br />
<?php echo $form->dropDownList($model,'agenzia_dest', $model->getMenuAgenzia());?>
<?php echo "<font color='#000000'><b>" .$form->error($model,'agenzia_dest')."</b></font>"; ?>
...................
Esto es mi controller
...................
//Action AgenziaByCap
public function actionAgenziaByCap()
{
$list=Agenzia::model()->findAll("cap_id=?",array($_POST["Telegramma"]["cap_id"]));
foreach($list as $data)
echo "<option value=\"{$data->id}\">{$data->nome_completo}</option>";
}
..................
En mi model tengo esto para que se llenen los dropdownmenu
......................
public function getMenuCap()
{
return CHtml::listData(Cap::model()->findAll(), "id","selectCap");
}
public function getMenuAgenzia()
{
$agenzia=Agenzia::model()->findAll($id);
return CHtml::listData($agenzia, "id","nome_completo");
}
....................
Gracias por ayudarme.