Как получить обычный чекбокс в форме Zend? - PullRequest
1 голос
/ 20 апреля 2011

У меня есть форма в Zend_Form, для которой нужны некоторые флажки, и я бы хотел, чтобы они были обычными старыми флажками. Вы знаете, вы даете им имя и значение. Если они проверены, ваши почтовые данные содержат имя => значение.

Zend_Form генерирует два поля ввода. Один, флажок с value=1, а второй скрытый ввод с value=2. Оба имеют одинаковое имя. Я теоретически понимаю, как Zend ожидает, что флажок будет работать, но я не ожидаю, что он будет работать, и не так, как я хочу, чтобы он работал. Как мне вернуть мой старый моду HTML-флажок?

Я попытался использовать $this->createElement, $this->addElement и создать Zend_Form_Element_Checkbox вручную. Ни один из них не позволяет мне установить значение флажка, и все они создают скрытый ввод.

Ответы [ 4 ]

3 голосов
/ 08 июля 2013

Последний и ДЕЙСТВИТЕЛЬНО правильный ответ - добавить опцию к элементу:

$this->addElement('checkbox', 'my_element', array(
    'label' => 'My Element Label',
    'name' => 'my_element_name',
    'disableHidden' => true
));
1 голос
/ 20 апреля 2011

Zend_Form_Element_MultiCheckbox - это то, что вы ищете.

Стандартный элемент Checkbox предназначен для представления сценариев "да / нет".

1 голос
/ 20 апреля 2011

Вы можете расширить Zend библиотеку и добавить свой собственный элемент формы , чтобы отобразить его так, как вы ожидаете.Я сделал это для того, чтобы иметь поле даты, и оно работало просто отлично.

0 голосов
/ 21 апреля 2011

Интересно, почему это не работает для вас.Вы можете установить значения на что угодно (setCheckedValue() и setUncheckedValue()).Таким образом, единственное отличие от обычного флажка -

if (null == $this->_getParam('checkbox', null)) {
//vs.
if ($unchecked == $this->_getParam('checkbox')) {

Что именно вы пытаетесь сделать?

...