Как добавить имя как show[xyz], show[abc] и т. д. для нескольких флажков в форме zend

Привет... Я хочу, чтобы несколько флажков отображались как и так далее... name="show[adgroups]", как я могу сделать это, используя код формы zend?? Ниже приведен пример того, как я хотел, чтобы мой вывод отображался:

Instructions
<div class="fieldgrp"> 
<label for="show_adgroups">Campaign/Ad-groups</label> 
<div class="field"><input type="checkbox" name="show[adgroups]" id="show_adgroups" class="" value="adgroups" checked="checked" /></div> 
</div> 
<div class="fieldgrp"> 
<label for="show_keywords">Keywords</label> 
<div class="field"><input type="checkbox" name="show[keywords]" id="show_keywords" class="" value="keywords" checked="checked" /></div> 
</div> 

person Lakshman Tirlangi    schedule 08.04.2011    source источник
comment
Я не вижу простого способа добиться того, чего вы хотите. Обычно MultiCheckbox использует такие имена, как show[], show[]. Кроме того, метод setName элемента отфильтровывает любые квадратные скобки. Поэтому я думаю, что единственный способ сделать то, что вы хотите, - это написать собственный элемент MultiCheckbox и связанный помощник представления.   -  person Marcin    schedule 08.04.2011


Ответы (1)


Не обращая внимания на вопрос «почему», вы можете добиться желаемого с помощью подформа.

Просто назовите подчиненную форму «show» и добавьте к ней флажки «adgroups» и «keywords».

$form = new Zend_Form;
$show = new Zend_Form_SubForm();
$show->addElement('checkbox', 'adgroups', array(
    'label'   => 'Campaign/Ad-groups',
    'checked' => true
));
$show->addElement('checkbox', 'keywords', array(
    'label'   => 'Keywords',
    'checked' => true
));
$form->addSubForm($show, 'show');
person Phil    schedule 10.04.2011