我正在创建一个表单并添加一个带ZF2的复选框,但由于某种原因,当我使用数组表示法时,选项不会被发送。
所以这个:
class PageForm extends Form
{
public function __construct($name = null)
{
$checkbox = new Element\Checkbox('system');
$checkbox ->setLabel('System Page')
->setUseHiddenElement(true)
->setCheckedValue("1")
->setUncheckedValue("0");
$this->add($checkbox);
}
}
正常工作, 但是这个:
class PageForm extends Form
{
public function __construct($name = null)
{
$this->add(array(
'type' => 'Checkbox',
'name' => 'checkbox',
'options' => array(
'label' => 'A checkbox',
'use_hidden_element' => true,
'checked_value' => 'good',
'unchecked_value' => 'bad'
)
}
}
创建复选框但没有选中/未选中的值,我想知道我是做错了什么,还是错过了一步? (这个例子直接来自文档)
这是视图中的代码:
$form = $this->form;
$form->setAttribute('action', $this->url('page', array('action' => 'add')));
$form->prepare();
echo $this->form()->openTag($form);
echo $this->formCollection($form);
echo $this->form()->closeTag();
由于
答案 0 :(得分:1)
为什么不使用Multicheckbox?
$multiCheckbox = new Element\MultiCheckbox('multi-checkbox');
$multiCheckbox->setLabel('What do you like ?');
$multiCheckbox->setValueOptions(array(
array(
'0' => 'Apple',
'1' => 'Orange',
'2' => 'Lemon'
)
));
$form = new Form('my-form');
$form->add($multiCheckbox);