Si, questo è un problema di javascript puro, non c’entra con Yii.
Ad ogni modo tutto ruota attorno a questo pezzo di codice che tu stesso hai scrito
.done(function( data ) {
});
in questo snippet, data è quello che viene restituito dal server. Potresti fare si che il server ti dia del json in risposta, così è facile da gestire lato javascript.
Il tuo problema è
- non sai come fare una l’action che mandi fuori del json
oppure
- non sai una volta ricevuo il json come aggiornare gli input?
nel primo caso ti posto un brevissimo esempio, spero di aver capito bene: la prima combo seleziona uno studente, giusto?
public function actionChiamataOnChangeDallaPrimaCombo($id_studente) {
$studente = Studenti::model()->findByPk($id_studente);
$dati_dello_studente = $studente->dati; // sto usando una immaginaria relation
// ora ho un array di dati dello studente
echo json_encode(CHtml::listData($dati_dello_studente, "id", "nome_della_colonna_da_mostrare"));
}
Questo fa si che via ajax ti arrivi dentro alla variabile data un json contenente un array con id in chiave e i valori della colonna da te scelta come valori.
A questo punto devi far si che una select si popoli con questi valori?
Ecco una possibile soluzione
$.each(data, function (chiave, item) {
$('#mySelect').append($('<option>', {
value: chiave,
text : item
}));
});
Ovviamente l’ultimo codice dipende da COME ESATTAMENTE arrivano i dati via json.
Per favore, una volta fatta l’action che restituisce i dati, potresti darci un esempio appunto di come appaiono, del json insomma?
[/code]