Yii Framework Forum: Listar elementos en un dropDownList - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Listar elementos en un dropDownList Con opción de grupos Rate Topic: -----

#1 User is offline   migueArgentina 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 139
  • Joined: 09-March 11

Posted 03 January 2012 - 07:30 AM

Tengo una tabla en mi DB "Material" el cual tiene tres atributos:
- id
- materia <- ejemplo: Bases de Datos
- tipo <- ejemplo: libro

Quiero crear un dropDownList que genere algo parecido a esto:

    <?php echo CHtml::dropDownList('Cars', 'car_id', array(
        'Mazda'=>array(
            'mazda-rx7'=>'RX7',
            'mazda-rx5'=>'RX5',
        ),
        'Volvo'=>array(
            'volvo-b9tl'=>'B9TL',
            'volvo-l90e-radlader'=>'L90E Radlader',
        ),
    )); ?>


y que quede como:

Materia 1
-----Tipo 1
-----Tipo 2
-----...
...
Materia n
-----Tipo 1
-----Tipo 2
-----...

Intenté con algo como:

	
		<?php echo CHtml::dropDownList('Material', 'idMaterial', 
			array(
				CHtml::listData(Material::model()->findAll(),'id', 'tipo')
				)
		); ?>
	


pero no devuelve lo que necesito.

Alguna idea?

Gracias
0

#2 User is offline   Jack Fiallos 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 256
  • Joined: 15-October 09
  • Location:Mexico

Posted 04 January 2012 - 12:42 PM

Ya te faltaba poco por resolverlo.. para agrupar solamente deberias escribir como ultimo parametro en el listData el nombre del campo que agruparas.. por ej..

// y materia_id seria el criterio que se utilizaria para agrupar los elementos
echo CHtml::dropDownList('Material', 'idMaterial', 
   CHtml::listData(Material::model()->findAll(),'id', 'tipo', 'materia_id')
);


suerte..
Celestic Dev Team
Yii Open Source Project Manager
0

#3 User is offline   migueArgentina 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 139
  • Joined: 09-March 11

Posted 05 January 2012 - 06:39 AM

Gracias Jack!!!

Igualmente me daba error, miré un código que tenía de otro formulario y vi que usaba activeDropDownList y no dropDownList. Qué diferencia hay entre estos???

Por si alguien lo necesita:

echo CHtml::activeDropDownList($model, 'idMaterial', 
			   CHtml::listData(Material::model()->findAll(),'id', 'tipo', 'materia')); ?>


Qué opciones tengo para poder listar los materiales agrupados de esa forma que NO estén prestados, es decir cuyo id NO se encuentre en otra tabla de la DB (tabla 'prestamo')? ???
0

#4 User is offline   Jack Fiallos 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 256
  • Joined: 15-October 09
  • Location:Mexico

Posted 05 January 2012 - 10:26 AM

Bien, básicamente la diferencia es que los activeComponents generan el contenido a partir de un modelo enviado como parámetro, los otros no lo hacen.

Ahora no comprendí tu ultima pregunta.. sobre agrupar los materiales no prestados ?? Aunque eso me suena mas a un filtro en la consulta sql..
Celestic Dev Team
Yii Open Source Project Manager
0

#5 User is offline   xNicox 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 77
  • Joined: 19-October 10

Posted 08 January 2012 - 09:19 AM

Una Consulta,
yo necesito algo parecido.

Pero en el "Group" del Compo veo el contenido de campo "materia_id", pero yo necesitaria la descripcion de esa FK que esta en otra tabla.
Lo voy a seguir intentando.
Si alguien me puede tirar algo de luz , sobre que estoy haciendo mal.
Saludos

Nicolas
Lic. Nicolas Machado
0

#6 User is offline   migueArgentina 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 139
  • Joined: 09-March 11

Posted 14 January 2012 - 10:14 AM

Esto no guarda bien los datos, ya lo volveré a revisar con tiempo.
0

#7 User is offline   Arkangel747 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 5
  • Joined: 03-January 14

Posted 11 March 2014 - 07:47 PM

Hola como estan, lo que yo quiero hacer es algo sencillo listar 2 opciones admin o usuario y el valor seleccionado guardarlo en la base de datos, para ello tengo el siguiente codigo:

<?php echo $form->labelEx($model,'rol');?>
<?php echo $form->dropDownList($model,'rol', array('0'=>'Usuario','1'=>'Administrador'));?>
<?php echo $form->error($model,'rol'); ?>

donde rol es el atributo en tabla y no se porq no me guarda el valor :( de verdad en la logica es sencillo pero al aplicarlo no me sale
0

#8 User is offline   rahif 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 141
  • Joined: 11-July 13

Posted 12 March 2014 - 02:47 AM

ve al modelo y en rules añade la regla:
  array('rol', 'in', 'range' =>array(0,1)),

con $model->attributes=$_POST['Modelo']; solo pasan los atributos que sean seguros (si tienen alguna regla se consideran seguros)
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users