DropDownList dipendenti

Buongiorno a tutti, sono nuovo del forum e dell’utilizzo del framework Yii. Stò realizzando un primo progetto e purtroppo sono rimasto bloccato su alcune cose, una tra queste sono due dropdownlist dipendenti. Vi spiego brevemente il progetto:

Ho due tabelle:

1-Task(@id_task,tipo_di_utenza,utente)

    ->tipo_di_utenza è predefinito come CONSULENTE o OPERATORE


    ->utente è l'id del consulente o dell'operatore assegnato al task

2-Utente(@idutente, cognome, nome, tipo_codice)

    ->tipo_codice può essere CONSULENTE oppure OPERATORE

Quando creo un nuovo task vorrei che nella prima DropDownList si possa selezionare se assegnare il task ad un consulente o ad un operatore, mentre nella seconda DropDownList, in base alla scelta fatta sulla prima, visualizzare l’elenco dei consulenti o degli operatori.

Seguendo qualche guida su internet sono riuscito a realizzare le due DropDownList, ma tuttavia la seconda non mi visualizza nessuna lista di elementi selezionabili. Credo di sbagliare nel settaggio di qualche paramentro, comunque vi allego il codice. Grazie in anticipo dell’aiuto. :D

nella _form




<div class="row">

		<?php echo $form->labelEx($model,'tipo_di_utenza'); ?>

		<?php 

                    $categorie=array('CONSULENTE','OPERATORE');

                    echo $form->dropDownList($model, 'tipo_di_utenza',$categorie,array('prompt'=>'Seleziona...','class'=>'form-control col-sm-4',

                        'ajax'=>array(

                        'type'=>'POST',

                        'url'=>  Yii::app()->createUrl('TaskController/caricaOperatore'),

                        

                        'data'=>array('tipo_di_utenza'=>'js:this.value','YII_CSRF_TOKEN'=>  Yii::app()->request->csrfToken),//$("#tipo_di_utenza option:selected").text()

                        'update'=>'#Task_utente',

                        )));

                ?>

	</div>


	<div class="row">

		<?php echo $form->labelEx($model,'utente'); ?>

                <?php echo $form->dropDownList($model,'utente',array(),array('prompt'=>'Seleziona...')); ?>  

	</div>



nel controller




    public function actionCaricaOperatore(){

        $data=  Utenti::model()->findAllByAttributes(array('tipo_di_utenza'=>$_POST['tipo_utenza']));

           

        $data=CHtml::listData($data,'idutente','cognome');

 

        foreach($data as $value=>$name){

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

        }

    }



Nessuno riesce a vedere l’errore?

Nel Controller $_POST[‘tipo_utenza’] dovrebbe essere $_POST[‘tipo_di_utenza’]

Poi nella parte javascript dovresti avere un "success" in cui mettere qualcosa tipo: $("select#miaselect").html(data);

ho dato un’occhiata veloce, oltre a quanto sopra segnalato, mi sembra ci sia un’incongruenza

nel controller: … ‘url’=> Yii::app()->createUrl(‘TaskController/caricaOperatore’),

nel form: … public function actionCaricaOperatore(){

da una parte la “c” è minuscola, dall’altra è “C” maiuscola

a parte che hai invertito form e controller, la ‘C’ è OK per convenzione di Yii;

Direi invece che è sbagliata la T di TaskController: dovrebbe essere


'url'=> Yii::app()->createUrl('taskController/caricaOperatore');