我試圖添加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