2012-11-11 99 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