我配置了以下表单元素,但我不知道为什么不预先选择这些值。
$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',
),
),
答案 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',
),
),
)
));