以zend形式的相关数组元素

时间:2010-06-12 17:34:40

标签: zend-framework

试图找到一个解决方案一段时间没有太多运气......

需要呈现一个包含复选框数组的表单,每个复选框都有一个关联的文本框。

给定一个数组数组('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 个答案:

答案 0 :(得分:1)

没有自定义元素就无法完成。我建议看http://www.zendcasts.com/writing-composite-zend_form-elements/2010/03/

答案 1 :(得分:0)

只需创建一个自定义装饰器,从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;