Ciao a tutti,
avrei bisogno di un aiuto.
Ho creato 2 dropdown menu dipendenti che rappresentano il primo la "marca" il secondo il "modello" relativo alla marca selezionata.
ho seguito il wiki http://www.yiiframework.com/wiki/24/ dal titolo "Creating a dependent dropdown".
il primo menù "marca" preleva i dati dalla tabella "marca" mentre il menù "modello" preleva i dati dalla tabella "modello". le due tabelle sono in relazione 1-N attraverso la chiave id_marca nella tabella modello
marca
id|desc
modello
id|id_marca|desc
desc è il campo che indica il nome della marca o del modello
L’implementazione dell’esempio funziona correttamente, ma la mia esigenza è anche quella di recuperare i valori selezionati dei due dropdown menu’ essendo essi inseriti all’interno di un form.
Perciò ho inserito nella variabile $marca i dati della tabella marca e poi passati al $form->dropDownList…
mentre con il dropdown dipendente "modello" non sò come fare.
come posso fare per cambiare:
echo CHtml::dropDownList(‘desc’,‘modello’, array(), array(‘prompt’=>‘Seleziona Modello’));
i modo da poter recuperare la selezione con $form->dropDownList($model,…)
Sotto il codice
Grazie
La view:
$marca = CHtml::listData(Marca::model()->findAll(array(‘order’ => ‘id’)), ‘id’, ‘desc’);
echo $form->dropDownList($model,'marca', $marca,
array(
'prompt'=>'Seleziona Marca',
'ajax' => array(
'type'=>'POST',
'url'=>CController::createUrl('LoadModello'),
'update'=>'#desc',
'data'=>array('id_marca'=>'js:this.value'),
)));
echo $form->labelEx($model,'modello');
echo CHtml::dropDownList('desc','modello', array(), array('prompt'=>'Seleziona Modello'));
Il Controller
public function actionLoadModello()
{
$data=Modello::model()->findAll('id_marca=:id_marca', array(':id_marca'=>(int) $_POST['id_marca']));
$data=CHtml::listData($data,'id','desc');
foreach($data as $value=>$desc)
{
echo CHtml::tag('option', array('value'=>$value),CHtml::encode($desc),true);
}
}//