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

#zend-framework #zend-form

#zend-framework #zend-форма

Вопрос:

Hii… Я хочу, чтобы несколько флажков отображались как и так on…name =»показывать [группы объявлений]», как я могу это сделать, используя код zend form?? Пожалуйста, смотрите ниже пример, как я хотел, чтобы мои выходные данные просматривались:

Инструкции

 <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> 
  

Комментарии:

1. Я не вижу никакого простого способа достичь того, чего вы хотите. Обычно в MultiCheckbox используются такие имена, как show[], показать[]. Кроме того, метод setName элемента отфильтровывает любые квадратные скобки. Поэтому я думаю, что единственным способом сделать то, что вы хотите, было бы написать пользовательский элемент MultiCheckbox и связанный с ним помощник view.

Ответ №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');