связанные элементы массива в форме Zend - PullRequest
1 голос
/ 12 июня 2010

Некоторое время пытались найти решение для этого без особой удачи ...

Необходимо отобразить форму с массивом флажков, каждый из которых имеет соответствующее текстовое поле.

задан массив массивов ('Dave' => 23, 'Pete' => 12, 'Si' => 43);

итоговая наценка должна дать:

<div>
<label><input type="checkbox" name="user_id[]" id="user_id-1" value="23" />Dave</label>
<label for="job-1">Job:</label><input type="text" name="job[]" id="job-1" />
</div>
<div>
<label><input type="checkbox" name="user_id[]" id="user_id-2" value="12" />Pete</label>
<label for="job-2">Job:</label><input type="text" name="job[]" id="job-2" />
</div>
<div>
<label><input type="checkbox" name="user_id[]" id="user_id-3" value="43" />Si</label>
<label for="job-3">Job:</label><input type="text" name="job[]" id="job-3" />
</div>

Завершите Zend Noob, чтобы оценить любую помощь (включая декораторов и т. Д.)

Спасибо, выглядывает

Ответы [ 2 ]

1 голос
/ 12 июня 2010

Не может быть сделано без пользовательских элементов. Я бы посоветовал посмотреть http://www.zendcasts.com/writing-composite-zend_form-elements/2010/03/

0 голосов
/ 06 августа 2010

просто создайте пользовательский декоратор, выходящий из Zend_Form_Decorator_Abstract и определите функцию render, которая возвращает html, который вы определили внутри, например, вы можете сделать:

$html = ''; // some code html
$i = 0;
foreach ($element->getMultiOptions() as $value => $label){
    $html .= '<label><input type="checkbox" name="'.$element->getName().'[]" id="'$element->getName()'-'.$i.'" value="'.$value.'" />'.$label.'</label>';
    $i++;
}
return $html;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...