2012-09-06 33 views
5

Để Tạo một hộp nhập văn bản tôi đã sử dụng folling mã trong zend framework2zf2 tạo hộp chọn/thả xuống và điền các tùy chọn trong bộ điều khiển?

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', 
      ), 
     ));  
    } 
} 

và tôi có thể điền giá trị trong hành động điều khiển sử dụng

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

Bất kỳ ý tưởng làm thế nào tôi có thể làm tương tự cho Selection/thả xuống hộp trong zf2?

Ref: zend framework 2 documentation

Trả lời

14

Kiểm tra các API (các tài liệu là khủng khiếp, vì vậy kiểm tra mã).

Sử dụng các lớp Zend\Form\Element\Select và thiết lập thuộc tính tùy chọn như vậy:

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

Output các yếu tố sử dụng helper FormRow hoặc FormSelect xem.

Trang web này cũng là một nguồn tốt cho các ví dụ và thông tin: http://zf2.readthedocs.org/en/latest/modules/zend.form.quick-start.html

Ví dụ:

$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', 
    ), 
));  

Bạn cũng có thể gán các tùy chọn trong điều khiển nếu bạn cần, như trình bày ở trên.

+0

bạn có thể cung cấp cho tôi hộp lựa chọn ví dụ hoàn chỉnh hoặc rechange mã trên của tôi – Developer

+0

Xong, có trợ giúp không? –

+0

@Developer: Cảm ơn bạn đã chỉnh sửa. –

2

Zend Framework 2.2, chọn tùy chọn đã được chuyển vào 'tùy chọn' thay vì 'thuộc tính' để ở trên mã sẽ được thay đổi quá

$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

Nếu bạn muốn làm điều đó trong bộ điều khiển sau đó làm điều đó như cách này

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

$ username là một mảng

Ref Click Here

Các vấn đề liên quan