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.
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);
}
}