我试图添加Zend_Form_Elements在我的表单中的单选按钮,但到目前为止我一直无法这样做。如果任何人可以指出我在正确的方向,将不胜感激。表单需要呈现如下图所示:Zend_Form:添加元素到单选按钮
(*) [____]%
() [____]€
() [___] for [___]
我试图添加Zend_Form_Elements在我的表单中的单选按钮,但到目前为止我一直无法这样做。如果任何人可以指出我在正确的方向,将不胜感激。表单需要呈现如下图所示:Zend_Form:添加元素到单选按钮
(*) [____]%
() [____]€
() [___] for [___]
使用形式decorators和CSS,你想要的样式输入。
您会使用forn装饰器重写表单的标记。但是,这是一个非常挑战性的问题,也许你最好的选择是一个formScriptScript。有很容易实现,并让您100%的表单的HTML控制。看看
例子:完全自定义使用ViewScript装饰
在我联系的例子。
怎么是这样的:
class My_RadioForm extends Zend_Form
{
public function init()
{
$this->addElement('radio', 'myradio', array(
'label' => 'Select an option below',
'multiOptions' => array(
'val1' => 'Text 1',
'val2' => 'Text 2',
'val3' => 'Text 2',
),
));
}
}
非常特殊的渲染,@iznogood是正确的:总得进入所有的装饰企业。
你好。这几乎是我已经拥有的代码。问题是我需要在迭代之间插入元素,否则它只是一个简单的单选按钮列表。如果我需要进入装饰器,我需要做什么?添加和/或删除装饰器?创建我自己的? '使用表单装饰'是非常不明确的。 – Andy 2010-08-02 12:59:27
如果只是定位输入标签,您可以使用docorators。您可以通过覆盖/修改默认的FormElements装饰器来实现,例如,通过将float:left样式属性添加到特定的表单元素。从大卫的继续示例:
$this->addElement('radio', 'myradio', array(
'label' => 'Select an option below',
'multiOptions' => array(
'val1' => 'Text 1',
'val2' => 'Text 2',
'val3' => 'Text 2',
),
'decorators' =>
array(
'ViewHelper',
'Errors',
'Description',
array('HtmlTag', array('tag' => 'dd', 'style' => 'float: left')),
'Label'
)
));
还有一个setDefaultDecorators()方法,它允许您覆盖所有元素装饰在整个表格。
更高级的解决方案,用于创建复合元素 - http://weierophinney.net/matthew/archives/217-Creating-composite-elements.html - 即包含多个输入标签的自定义表单元素。您可以通过这种方式更好地控制表单业务逻辑。
这是一个令人难以置信的含糊答案。关心更精确一点? – Andy 2010-08-02 06:55:40