Enjoy A New Student Discount All 55,000 Courses on sale for Only $12.99

Ends in 05h 23m 49s

YII – Crear lista desplegable (Dropdown) desde BBDD

Si los datos los vas a obtener desde una tabla, lo correcto seria añadir en el modelo correspondiente esa funcionalidad.(si la lista la has de creara mano, sigue este comentario)

Supongamos que tengo una tabla de grupos de usuarios. La primera solución  seria como siempre resolver en el propio modelo de esta tabla algo como esto:

public function getGrupos($id=0)
{
$criteria=new CDbCriteria();
$criteria->select='id_grupo,Descripcion_Grupo'; //solo quiero estos dos campos
$criteria->order='ordenPresentacion'; //para que aparezcan clasificados
$criteria->addCondition('id_idioma=1'); //solo los que sean del idioma 1
if ($id>0)
$criteria->addCondition('id_grupo='.$id); //Si me indican id //busco  uno
$aGrupos=$this->findAll($criteria); //lanzo el query
$grupos=array();
foreach ($aGrupos as $p)
$grupos($p->id_grupo)= $p->Descripcion_Grupo; //monto array
return $grupos;
}

Con esto, conseguimos un array de  id-> descripción desde la tabla; la ventaja de este método es la precisión con la que podemos escoger y ordenar nuestra lista, en el formulario nos bastara con:

<?php echo $form->dropDownList($model,'id_grupo',$model->getGrupos()); ?>

Cuando no existan complicaciones de selección  podemos simplificar el sistema, modificando solo el form con estas lineas:

<?php echo $form->dropDownList($model,
'id_grupo',
CHtml::listData(CnArticuloGrupo::model()->findAll(), 'id_grupo', 'Descripcion_Grupo')
);?>

Bibliografia:

http://www.yiiframework.com/doc/api/1.1/CDbCriteria
http://yiitutorials.net/easy/yii-getting-info-from-the-database

4 comentarios

Deja un comentario

/*Si te ha gustado el artículo
no dudes en compartirlo*/

Facebook
Twitter
LinkedIn

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies

Ver mi IP

Ver ip de mi máquina
tipo valor
Ip: 3.235.46.191
Proxy: 3.235.46.191
Remote host: ec2-3-235-46-191.compute-1.amazonaws.com
Remote port: 18944
** 3.235.46.191