2011-03-07 17 views
7

En un selecto normal, sin optgroups, el siguiente código en CakePHP haría un valor al predeterminado:CakePHP: Valor de ajuste por defecto en un select con optgroups

valor 'selected' => $

Una vez que tengo optgroups (una etiqueta de selección con encabezados) ¿cómo configuro un valor predeterminado? El código anterior no parece funcionar.

Respuesta

7

usted puede tratar de esta manera:

echo $this->Form->input('group_id', array('type'=>'select','default'=>'2')); 

que lleva a la siguiente HTML que se genera:

<option value="2" selected="selected">Managers</option> 

Ahora la segunda opción se muestra en lugar de cualquier otro.

5

no utilice "valor" o "seleccionado" etc. Esto romperá sus formularios en POST. si debe usar el nivel de vista, use "predeterminado".

una mejor manera es establecer desde el controlador:

if ($this->RequestHandler->is('post')) { 
    ... 
} else { 
    $this->data['Model']['field'] = 2; // e.g. 
} 

ver http://www.dereuromark.de/2010/06/23/working-with-forms/ para más detalles

2
echo $this->Form->input('point', array(
    'label'=>'', 
    'options'=>$list_of_options, 
    'value'=>$default_value, 
    'empty'=>'--select--', 
    'onchange'=>'some_action();' 
) 
); 
+0

gracias por este ' 'vacío' => '- seleccionar -'' , ¡Salvaste mi día! –

Cuestiones relacionadas