Zend 2 Form选择倍数:如何预选值

时间:2015-12-08 21:42:21

标签: php zend-framework2

我配置了以下表单元素,但我不知道为什么不预先选择这些值。

$this->add(array(
        'name' => 'item_ids',
        'type' => 'Select',
        'attributes' => array(
            'id' => 'item_ids',
            'class' => 'form-control',
            'multiple' => 'multiple',
            'value' => array('1','2'),

        ),
        'options' => array(
            'label' => 'Items',
            'label_attributes' => array(
                'class' => 'col-sm-2 control-label',
            ),
            'value_options' => array(
                '1' =>'Item 1',
                '2' =>'Item 2',
                '3' =>'Item 3'
            ),

        )
    ));

我希望"项目1"和"项目2"被预选。

我希望有人可以帮我解决问题。

####更新####

在文档中找到类似的东西,我会试一试:

'value_options' => array(
           array(
               'value' => '1',
               'label' => 'Orange',
               'selected' => true,
           ),
           array(
               'value' => '2',
               'label' => 'Lemon',
           ),
       ),

2 个答案:

答案 0 :(得分:1)

您可以设置表单值,如:

$form->getElement('selector')->setValue('val'); 

$form->setDefaults(array( 
    'selector' => 'val' 
));

答案 1 :(得分:0)

正如我在第一篇文章的更新中所提到的,我发现了一些似乎正确的方法。

我测试了它,这是解决方案:

$this->add(array(
    'name' => 'item_ids',
    'type' => 'Select',
    'attributes' => array(
        'id' => 'item_ids',
        'class' => 'form-control',
        'multiple' => 'multiple',

    ),
    'options' => array(
        'label' => 'Items',
        'label_attributes' => array(
            'class' => 'col-sm-2 control-label',
        ),
    'value_options' => array(
           array(
               'value' => '1',
               'label' => 'Item 1',
               'selected' => true,
           ),
           array(
               'value' => '2',
               'label' => 'Item 2',
            'selected' => true,
           ),
           array(
               'value' => '3',
               'label' => 'Item 3',
           ),
           ),

    )
));