2012-11-11 141 views
0

我在寫我的第一個Zend PHP應用程序,我需要一些幫助。 我通過創建擴展了Zend_form類,並在初始化生成我的形式()我添加的元素,如:用自定義html預定Zend表格

$user = $this->addElement('text', 'user', array(

    'filters' => array('StringTrim'), 

    'validators' => array(

      array('StringLength', false, array(3, 30)), 

     ), 

    'required' => true, 

    'label'  => 'Name', 

     'size' => 30 

    )); 

現在我需要預先我與自定義文本自定義HTML段落(<p>元素)的形式。我如何做到這一點?

PS:我使用的是舊ZEND(ZF2之前)

+1

看一看[這個問題](http://stackoverflow.com/questions/2566432 /附加一些-HT​​ML到Zend的表單)。第二個答案(所選答案之後的答案)可能會幫助您設置一個自定義['Decorator'](http://framework.zend.com/manual/1.12/en/zend.form.decorators.html) – Havelock

回答

0

退房這種裝飾可能會有所幫助

$this->setDecorators(array(

      'FormElements', 
      array(array('data'=>'HtmlTag'),array('tag'=>'p')), 
      'Form' 

    )); 
+0

Nope ,這不是OP要求的。 – Havelock

2

可以插入任何一段HTML代碼視圖,您將呈現形成這樣的:

file: formView.phtml 

---------- 
<p> Here's my text </p> 

<?php echo $this->form; ?> 

但是,如果你想<p>塊是<形式>內標記,我會使用一個viewscript裝飾器來實現它。

添加這樣的事情在你的表單類的init方法:

$this->setDecorators(array(
     array('ViewScript', array('viewScript' => 'templates/myForm.phtml')) 
    )); 

而且在模板/ myForm.phtml文件,你可以使你的表格你想要的任何方式。這裏有一個例子:

<?php $form = $this->element; ?> 
<form action="<?php echo $form->getAction(); ?>"> 
     <p> Your text goes here </p> 
    <?php echo $form->user; ?> 
</form> 

我希望我明確自己。如果您有任何疑問,請不要猶豫,問

你可以閱讀更多有關ViewScript裝飾這裏 http://framework.zend.com/manual/1.12/en/zend.form.standardDecorators.html#zend.form.standardDecorators.viewScript