0

我正在编写我的第一个 Zend PHP 应用程序,我需要一些帮助。我通过创建扩展 Zend_Form 的类来生成我的表单,并在 init() 中添加如下元素:

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

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

    'validators' => array(

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

        ),

    'required'   => true,

    'label'      => 'Name',

        'size' => 30 

    ));

现在我需要在我的表单前面加上自<p>定义文本的自定义 html 段落(元素)。我怎么能做到这一点?

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

4

2 回答 2

2

您可以在将呈现表单的视图中插入任何一段 html 代码,如下所示:

file: formView.phtml

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

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

但是,如果您希望 <p> 块位于 <form> 标记内,我会使用 viewscript 装饰器来实现它。

在表单类的 init 方法中添加类似的内容:

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

在 templates/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

于 2012-11-15T18:32:17.433 回答
0

看看这个装饰器可能会有所帮助

$this->setDecorators(array(

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

   ));
于 2012-11-13T11:26:17.037 回答