2012-09-06 13 views
5

para crear un cuadro de entrada de texto utilicé folling código en framework2 Zendzf2 crear el cuadro de selección/desplegable y completar opciones en el controlador?

use Zend\Form\Form; 

class Loginform extends Form 
{ 
    public function __construct() 
    { 
      $this->add(array(   
      'name' => 'usernames', 
      'attributes' => array(
       'id' => 'usernames',     
       'type' => 'text', 
      ), 
      'options' => array(
       'label' => 'User Name', 
      ), 
     ));  
    } 
} 

y puedo rellenar los valores en acción del controlador usando

$form = new Loginform(); 
$form->get('usernames')->setAttribute('value', 'user 1'); 

alguna idea de cómo puedo hacer lo mismo para Selección/desplegable en zf2?

Ref: zend framework 2 documentation

Respuesta

14

Comprobar la API (los documentos son terribles, a fin de comprobar el código).

utilizar la clase Zend\Form\Element\Select y defina las opciones de atributos de este modo:

$element->setAttribute('options', array(
    'key' => 'val', 
    ... 
)); 

salida del elemento mediante el FormRow o FormSelect ayudante de vista.

Este sitio es también una buena fuente de ejemplos e información: http://zf2.readthedocs.org/en/latest/modules/zend.form.quick-start.html

Ejemplo:

$this->add(array(  
    'type' => 'Zend\Form\Element\Select',  
    'name' => 'usernames', 
    'attributes' => array(
     'id' => 'usernames',     
     'options' => array(
      'test' => 'Hi, Im a test!', 
      'Foo' => 'Bar', 
     ), 
    ), 
    'options' => array(
     'label' => 'User Name', 
    ), 
));  

También puede asignar las opciones en el controlador si es necesario, como se muestra arriba.

+0

¿me puede dar cuadro de ejemplo, la selección completa o RECHANGE mi código – Developer

+0

por encima de Hecho, ¿ayuda? –

+0

@ Desarrollador: Gracias por la edición. –

2

Zend Framework 2.2, seleccione las opciones se han movido en 'opciones' en lugar de 'atributos' por lo anterior código se puede cambiar también

$this->add(array(  
    'type' => 'Zend\Form\Element\Select',  
    'name' => 'usernames', 
    'attributes' => array(
     'id' => 'usernames'    
    ), 
    'options' => array(
     'label' => 'User Name', 
     'options' => array(
      'test' => 'Hi, Im a test!', 
      'Foo' => 'Bar', 
     ), 
    ), 
)); 
2

Si desea hacerlo en el controlador y luego hacerlo de esta manera

$form->get('ELEMENT_NAME')->setAttribute('options' ,array('KEY' => 'VALUE')); 
3
$form = new Loginform();  
$form->get('usernames')->setValueOptions($usernames); 

nombres de usuario $ es una matriz

Ref Click Here

Cuestiones relacionadas