Menu Dependientes

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. :)

aki te mando un ejemplo de como yo lo hice y ojala te sirva

form:

<div class="row">

	&lt;?php echo &#036;form-&gt;labelEx(&#036;model,'temags_fk'); ?&gt;


	&lt;?php echo &#036;form-&gt;dropDownList(&#036;model,'temags_fk',CHtml::listData(Temags::model()-&gt;findAll(array('order'=&gt;'temags_desc')),'id','temags_desc'),


                        array(


                            'ajax'=&gt;array(


                                'type'=&gt;'POST',


                                'url'=&gt;CController::createUrl('Denuncia/Select_tema'),


                                'update'=&gt;'#'.CHtml::activeId(&#036;model,'planteamientos_fk'),


                            ),'prompt'=&gt;'Seleccione'


                        )); ?&gt;


	&lt;?php echo &#036;form-&gt;error(&#036;model,'temags_fk'); ?&gt;


&lt;/div&gt;





&lt;div class=&quot;row&quot;&gt;


	&lt;?php echo &#036;form-&gt;labelEx(&#036;model,'planteamientos_fk'); ?&gt;


	&lt;?php 


            &#036;lista_planteamientos = array();


            if(isset(&#036;model-&gt;planteamientos_fk)){


            &#036;id_temags = intval(&#036;model-&gt;temags_fk);


            &#036;lista_planteamientos = CHtml::listData(Planteamientos::model()-&gt;findAll(&quot;temags_fk = '&#036;id_temags'&quot;),'id','plant_desc');


            }


            echo &#036;form-&gt;dropDownList(&#036;model,'planteamientos_fk',&#036;lista_planteamientos,array('prompt'=&gt;'Seleccione')); ?&gt;


	&lt;?php echo &#036;form-&gt;error(&#036;model,'planteamientos_fk'); ?&gt;


&lt;/div&gt;

en mi caso yo lo quiero es que segun el tema me escoja sus planteamientos.

controller:

public function actionSelect_tema()

    {


        &#036;id_tema = &#036;_POST['Denuncia']['temags_fk'];


        &#036;lista = Planteamientos::model()-&gt;findAll('temags_fk = :id_tema',array('id_tema'=&gt;&#036;id_tema));


        &#036;lista = CHtml::listData(&#036;lista,'id','plant_desc');


        


        echo CHtml::tag('option',array('value'=&gt;''),'Seleccione',true); 


        


        foreach (&#036;lista as &#036;valor =&gt; &#036;planteamiento){


                 echo CHtml::tag('option',array('value'=&gt;&#036;valor),CHtml::encode(&#036;planteamiento),true);


        }


            


    }

en el modelo no tuve que hacer nada ya que como tengo definida mis relaciones entre tablas el automaticamente me las carga.

espero que te sirva