2011-10-18 61 views
0

我用幾個字段創建了一個Zend_From。我想要做的是把它們放在段落裏,以便自然流動。舉一個例子拆分Zend_Form

Danny had [select with 1-10] apples and James had [select with 3-20] pears.

我一直在試圖與

$elem= $this->registerForm->getElement('danny'); 

但隨後的輸出,不包含此元素的值的形式來做到這一點了。我也認爲這可以用Zend_Form_SubForm()完成,但找不到任何例子。

回答

3

你不需要這樣的子表單,只需要一些具有特殊裝飾器的常規表單,或者刪除了一些裝飾器。

<?php 

class Your_Form_Example extends Zend_Form 
{ 

    public function init() { 
     // wrap the select tag in a <span> tag, hide label, errors, and description 
     $selectDecorators = array(
      'ViewHelper', 
      array('HtmlTag', array('tag' => 'span')) 
     ); 

     $this->addElement('select', 'danny', array(
      'required' => true, 
      'multiOptions' => array('opt1', 'opt2'), 
      'decorators' => $selectDecorators // use the reduced decorators given above 
     )); 
    } 
} 

那麼這裏就是呈現的形式查看腳本...

<form method="<?php echo $form->getMethod() ?>" action="<?php echo $form->getAction() ?>"> 
    <p>Danny had <?php echo $form->danny ?> apples and James had <?php echo $form->james ?> pears.</p> 
    <p>More stuff here...</p> 

    <?php echo $form->submit ?> 
</form> 

這將導致類似

<p>Danny had <span><select name="danny" id="danny"><option>opt1</option><option>opt2</option></select></span> apples and James had .....</p> 

爲了保持形式輸出好看,錯誤,描述和標籤裝飾器被刪除,不會被渲染。因此,當您檢查表單上的錯誤時,如果select元素有錯誤,您將需要在表單上或其他位置顯示它們,因爲它們不會與select元素一起呈現。

希望有所幫助。

0

甚至可以使用單個字段。從控制器發送到視圖的form變量是一組對象。您可以通過使用->運算符來獲得單個字段。例如,你可以使用

danny had <?php echo $this->form->danny; ?>apples and james had <?php echo $this->form->james; ?>....... 

$this->form->danny$this->form->james是在你的zend form

把你的HTML元素