2012-05-03 62 views
1

我想下面的HTML:Zend_Form的單選按鈕

<form name="input" action="post" method="get"> 
    <label>1</label><input type="radio" value="1" name="rating" /> 
    <label>2</label><input type="radio" value="2" name="rating" /> 
    <label>3</label><input type="radio" value="3" name="rating" /> 
    <label>4</label><input type="radio" value="4" name="rating" /> 
    <label>5</label><input type="radio" value="5" name="rating" /> 
    <input type="submit" value="Submit" /> 
</form> 

在我的Zend框架的項目,我怎麼做到這一點和Zend_Form?我試圖從某些博客代碼幾樣位,但他們沒有工作。您可以使用ViewScript裝飾來創建你所需要的標記

感謝

+1

你究竟做了什麼,爲什麼他們不工作? – Songo

+0

我試過這個http://zendguru.wordpress.com/2009/03/05/zend-framework-form-working-with-radio-buttons/,我得到錯誤 - > setSeperator不是一個函數。 – Rex89

回答

6

。在你的窗體類創建無線電元素,並使用setDecorators方法來分配ViewScript裝飾這個元素

$element = new Zend_Form_Element_Radio('rating'); 
$element->addMultiOptions(array(
    '1' => '1', 
    '2' => '2', 
    '3' => '3', 
    '4' => '4', 
    '5' => '5' 
)) 
    ->setDecorators(array(array('ViewScript', array('viewScript' => 'radio.phtml')))); 
$this->addElement($element); 

則創建該文件radio.phtml你的意見/ scripts目錄裏面有以下

<?php foreach ($this->element->getMultiOptions() as $label => $value) : ?> 
<label><?php echo $label; ?></label><input type="radio" value="<?php echo $value; ?>" name="<?php echo $this->element->getName(); ?>" /> 
<?php endforeach; ?>