Foros del Web » Programando para Internet » PHP »

Ordenar contenido de un select (drop donw list)

Estas en el tema de Ordenar contenido de un select (drop donw list) en el foro de PHP en Foros del Web. Hola de nuevo, Sigo intentando aprender esto del CakePHP. Es bastante liado al principio. Vereis estoy intentado descubrir cómo ordenar el contenido de un drop ...
  #1 (permalink)  
Antiguo 15/04/2009, 08:28
 
Fecha de Ingreso: diciembre-2003
Mensajes: 27
Antigüedad: 20 años, 4 meses
Puntos: 0
Ordenar contenido de un select (drop donw list)

Hola de nuevo,
Sigo intentando aprender esto del CakePHP. Es bastante liado al principio.

Vereis estoy intentado descubrir cómo ordenar el contenido de un drop down list.
Antes era sencillo para mi hacerlo, pero desde que me he metido con el cake, nada de nada.

Tengo CLIENTES y PROVEEDORES.

En el formulario de añadir CLIENTE, me sale un select con los PROVEEDORES.
El select sale pq puse las asociaciones (hasMany y belongsTo) correspondientes en los dos modelos.

Ahora bien, poniendo esto en la vista, me sale el contenido del select ordenado por ID, pero yo quiero que salgo ordenado por NAME.

<?php echo $form->input('provider_id',array('div' => false,'label' => false,'error' => false,'empty' => 'Selecciona un proveedor ...')).chr(10); ?>

Alguien sabría ayudarme ? Gracias de antemano !
  #2 (permalink)  
Antiguo 15/04/2009, 09:44
 
Fecha de Ingreso: octubre-2005
Mensajes: 42
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: Ordenar contenido de un select (drop donw list)

Cuando defines las asociaciones entre modelos también puedes indicar el orden. Mírate la documentación.
  #3 (permalink)  
Antiguo 15/04/2009, 10:26
 
Fecha de Ingreso: diciembre-2003
Mensajes: 27
Antigüedad: 20 años, 4 meses
Puntos: 0
Respuesta: Ordenar contenido de un select (drop donw list)

Hola ! Gracias por tu respuesta ! He mirado la documentación y sí, veo que puedo poner el orden en el modelo, pero lo pongo y no me sale. Se me queda la página en blanco...

var $hasMany = array(
'Domain' => array(
'className' => 'Domain',
'foreignKey' => 'client_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => 'name', // tb he probado 'order' => 'name asc',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);

Bueno gracias, seguiré mirando la documentación...
  #4 (permalink)  
Antiguo 15/04/2009, 10:55
 
Fecha de Ingreso: octubre-2005
Mensajes: 42
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: Ordenar contenido de un select (drop donw list)

Probablemente te de un error porque los dos modelos tienen un campo llamado "name". Prueba poniendo "Cliente.name asc", o cómo sea que se llame el modelo por el que quieres ordenar.
  #5 (permalink)  
Antiguo 15/04/2009, 11:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Ordenar contenido de un select (drop donw list)

Tema trasladado desde PHP Orientado a Objetos
  #6 (permalink)  
Antiguo 16/04/2009, 03:22
 
Fecha de Ingreso: diciembre-2003
Mensajes: 27
Antigüedad: 20 años, 4 meses
Puntos: 0
Respuesta: Ordenar contenido de un select (drop donw list)

Hola CAT Shannon,
Lo he probado pero nada.
Al final he conseguido que salgo haciendo lo siguiente:

domain_controller.php
Código:
function add() {
	if (!empty($this->data)) {
		$this->Domain->create();
		if ($this->Domain->save($this->data)) {
			$this->Session->setFlash(__('The Domain has been saved', true));
			$this->redirect(array('action'=>'index'));
		} else {
			$this->Session->setFlash(__('The Domain could not be saved. Please, try again.', true));
		}
	}
	$providers = $this->Domain->Provider->find('list', array('order'=>'name asc'));
	$periods = $this->Domain->Period->find('list', array('order'=>'name asc'));
	$clients = $this->Domain->Client->find('list', array('order'=>'name asc'));
	$this->set(compact('providers', 'periods', 'clients'));
}
No se si es la forma correcta, pero me di cuenta que la funcion add, me devolvía todos los clientes, y allí fue donde puse el order asc... Con lo fácil que era hacer todo eso sin cakephp !!
Gracias por tus respuestas !
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:06.