Mostrare Menu In Base Al Parametro Passato.

Salve,

ho un form suddiviso in 2 step tramite 2 action.

Nel primo step tra i vari campi ho un campo chiamato "comune".

Il campo comune risiede nella tabella “cap” all’ interno della quale ho anche un campo chiamato “agenzia_nomecompleto” e anche un campo “agenzia_id” che relaziona le tabelle agenzia e cap.

Ho un’ altra tabella chiamata “vettore” dentro la quale ci sono i corrieri (SDA, TNT, GLS etc etc).

Quindi al primo step come detto ho un campo "comune" che è obbligatorio.

Quando l’ utente scrive il “comune” vorrei che al 2° step venisse verificato se quel comune ha un “agenzia” che lo copre.

Quindi se è coperto visualizzo il menu con il nome dell’ agenzia (che copre quel comune), se non è coperto visualizzo solo il menu “Vettore”

Ora come ora, riesco a fare questo creando i menu dipendenti e facendo si che alla scelta del comune mi apra il menu con il nome dell’ agenzia che lo copre. Se non è coperto mi lascia il menu in bianco e mi aggiunge una voce “Vettore” che se selezionata apre il menu dei vettori. Ma cosi non mi piace. Preferirei verificare nello step2 il comune inserito e quindi se è coperto da un’ agenzia visualizzo nel menu il nome dell’ agenzia, se non è coperto visualizzo il menu dei vettori. Qualcuno può aiutarmi perfavore?.

Questo è il codice che uso adesso per visualizzare i menu…ma non mi piace!!!

Form:




........ALTRI CAMPI.........


<?php 

		$htmlOptions=array(

		"ajax"=>array(

		"url"=>$this->createUrl("agenzia/AgenziaByComune"),

		"type"=>"POST",

		"update"=>"#Missiva_agenzia_dest",

		),

		);

		

		?>

        <?php echo $form->dropDownList($model, 'comune_dest', 	

		CHtml::listData(Cap::model()->findAll(), 'comune', 'comune'),

	    array(

		'ajax'=>array(

		'type'=>'POST',

		'url'=>Controller::createUrl('Missiva/Selezionaagenziadest'),

		'update'=>'#'.CHtml::activeId($model, 'agenzia_dest'),

		),

		'prompt'=>'Seleziona Comune'

		)

		);?>

        

		<?php echo $form->error($model,'comune_dest'); ?>




........ALTRI CAMPI.........




        <td>

        <b><font color="#FFFFFF"><?php echo $form->labelEx($model,'Consegna Tramite'); ?></font></b>

		<?php echo $form->dropDownList($model,'agenzia_dest',CHtml::listData(Cap::model()->findAll(), 'agenzia_nome_completo','agenzia_nome_completo'), array('id'=>'Missiva_agenzia_dest', 'class'=>'agenzia_dest'));?> <b><u>Se il Comune non &egrave coperto dalle Agenzie, Selezione un Vettore</b></u>

		<?php echo $form->error($model,'agenzia_dest'); ?>


        <b><font color="#FFFFFF"><?php echo $form->labelEx($model,''); ?></font></b>

		<?php echo $form->dropDownList($model,'vettore', CHtml::listData(Vettore::model()->findAll(array('order'=>"`id` ASC")), 'nome','nome'),array('id'=>'Vettore', 'class'=>'Vettore', 'empty'=>'Seleziona Vettore', 'style'=>'display:none'));?>

		<?php echo $form->error($model,'vettore'); ?>

        </td>


//Funzione Java per verificare che input arriva dal menu Missiva_agenzia_dest


    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js "></script>

     <script>

$('#Missiva_agenzia_dest').change(function() {


    // Hide all drop downs sharing the CSS class "toggledDropDown".

    $('#Vettore').hide();


    // Build a selector for the selected drop down

    var selector = ('#' + $(this).val());


    // Show the selected drop down

    $(selector).show();


});

	</script>



Controller:




....................................

		/*Funzione per riempimento Agenzia dest

	*/

	public function actionSelezionaagenziadest()

	{

		$id_agenzia = $_POST['Missiva']['comune_dest'];

		$lista = Cap::model()->findAll('comune = :id_agenzia', array(':id_agenzia'=>$id_agenzia));

		$lista = CHtml::listData($lista, 'agenzia_nome_completo', 'agenzia_nome_completo');

		echo CHtml::tag(true);

		foreach ($lista as $listaagenzie => $agenzia){

			echo CHtml::tag('option', array('value'=>$listaagenzie), CHtml::encode($agenzia), true);

			echo CHtml::tag('option', array('value'=>Vettore), CHtml::encode(Vettore), true);

			}

		}	

......................