Gestione Dropdown List

Salve, Sono alle prima esperienza con il framwork, avrei bisogno di un aiuto

Ho appena creato un modulo mediante CRUD, ho sostituito il controllo :

echo $form->textField($model,‘idCentroCosto’);

con

$models = Centricosto::model()->findAll(array(‘order’ => ‘dsCentroCosto’));

$list = CHtml::listData($models, ‘idCentroCosto’, ‘dsCentroCosto’);

echo CHtml::dropDownList(‘idCentroCosto’, $model, $list,array(‘empty’ => ‘(Select centro costo’));

Ma quando vado a fare il submit non riesco a recuperare il valore, mi viene risposto empty oppure se un valore richesto il forms mi blocca

Grazie a tutti

prova questo:


echo CHtml::dropDownList('idCentroCosto', $model->idCentroCosto, $list,array('empty' => '(Select centro costo'));

Grazie,

Purtroppo il risultato non è cambiato, la cosa che mi fa strano è che il valore viene recuperato dal db, mentre il valore che vado a cambiare nella drop non viene passato dal form, devo cambiare anche il model o il control per poter gestire una dropdown ????!

questo è il codice che ho nel _form.php

<div class="row">


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


	<?php 


		$modCC = Centricosto::model()->findAll(array('order' => 'dsCentroCosto'));


		$list = CHtml::listData($modCC, 'idCentroCosto', 'dsCentroCosto');


		echo CHtml::dropDownList('idCentroCosto', $model->idCentroCosto, $list,array('empty' => '(Select centro costo'));


	?>


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


</div>

Risolto il problema era il nome della dropdown praticamente

scrivendo cosi :

echo CHtml::dropDownList(‘Servizi[idCentroCosto]’, $model->idCentroCosto, $list,array(‘empty’ => ‘(Select centro costo’));

viene recuperato il codice dal controller

Grazie …

infatti dovevi usare activeDropDownList($model,‘nome_attributo’…)

Scusate che differenza c’è tra l’activeDropDownList e la dropDownList ?

Grazie

activeDropDownList() : Generates a drop down list for a model attribute.

dropDownList(): Generates a drop down list.

la tua dropDownList era una select generica, non agganciata al model,

infatti lamentavi il fatto che i valori non venissero letti e salvati correttamente.

Se avessi guardato nel POST, avresti visto che il name della select non era del tipo Model[‘nomecampo’]

e se guardi come una Action legge gli attributi del model noterai un $model->attributes = $_POST[‘Model’];

infatti quando hai specificato a mano Servizi[idCentroCosto] tutto è andato liscio.