我有一個使用視圖腳本的zend表單。我想訪問各個單選按鈕項目,但我不確定如何操作。現在,我只是全部使用它們打印出來:在zend窗體視圖腳本中編輯單個單選按鈕
echo $this->element->getElement('myRadio');
這將它們全部垂直打印出來。我需要更多的控制權。我需要能夠在一列中打印前5個選項,然後在第二列中打印下一個5個選項。
我有一個使用視圖腳本的zend表單。我想訪問各個單選按鈕項目,但我不確定如何操作。現在,我只是全部使用它們打印出來:在zend窗體視圖腳本中編輯單個單選按鈕
echo $this->element->getElement('myRadio');
這將它們全部垂直打印出來。我需要更多的控制權。我需要能夠在一列中打印前5個選項,然後在第二列中打印下一個5個選項。
也想出了這個。只需使用
$this->element->getElment('myRadio')->getMultiOptions();
它將返回一個鍵/值選項的數組。
我有同樣的問題。有沒有好的辦法做到這一點,我發現(大約ZF 1.10.8)
馬修緯二路O'Phinney有此頁面上的一些建議:
http://framework.zend.com/issues/browse/ZF-2977
但我發現這種方法繁瑣在實踐中。那張票上的原始海報有一個好主意,我認爲他們最終應該採用一些很好的方式來完成這些工作。
但是由於目前沒有更好的方法,我現在只是遵循馬修的建議。
對於我的形式我工作,渲染只是一個單一的單選按鈕到組外,我不得不這樣做:
在我的表單類:
$radio = new Zend_Form_Element_Radio('MYRADIO');
$radio->addMultiOption('OPTION1', 'Option One')
->addMultiOption('OPTION2', 'Option Two');
$this->addElement($radio);
在我看劇本,只是渲染OPTION1:
echo $this->formRadio(
$this->form->MYRADIO->getFullyQualifiedName(),
$this->form->MYRADIO->getValue(),
null,
array('OPTION1' => $this->form->MYRADIO->getMultiOption('OPTION1'))
);
那將呈現一個<input type="radio" />
元素和相關的<label>
。沒有其他裝飾器會被渲染,這是一個痛苦。
對於您的情況,您可能需要使用ViewScript
視圖幫助器呈現您的無線電元素和其他元素 - 這樣您可以按照您所描述的將自定義表格標記中的所有元素排成一行。
是的,我已經在使用ViewScript選項。我不介意收音機沒有得到所有其他的裝飾。這就是我使用ViewScript的原因。感謝formRadio視圖助手上的提示。 – 2010-11-04 05:20:40
這似乎是最好的選擇。這將創建像它應該的元素。只需要能夠添加一個類,這是最好的選擇。 – Matt 2012-06-10 22:05:35