如何将html / text添加到zend表单htmlTag中?

时间:2013-10-24 16:49:36

标签: php html zend-framework zend-form

我正在尝试将文本插入到使用zend表单创建的html标记中。

这是我的代码,不包括我的实际表单元素

 $this->addElements(array(

 // My other form elements

       array(
           'hidden',
           'dummy',
           array(
               'required' => false,
               'ignore' => true,
               'autoInsertNotEmptyValidator' => false,
               'decorators' => array(
                   array(
                       'HtmlTag', array(
                           'tag'  => 'div',
                           'id'   => 'DescCharsRemaining',
                           'setValue' => '
                               2000 Characters Remaining
                           '
                       )
                   )
               )
           )
       ),

       // My other form elements

我想在HtmlTag中添加一些类似于'setValue'的文本,而不是HtmlTag的html属性。

我得到的结果,

 <div id="DescCharsRemaining" setvalue="2000 Characters Remaining"></div>

我想要的结果,

 <div id="DescCharsRemaining">2000 Characters Remaining</div>

2 个答案:

答案 0 :(得分:2)

通过使用Zend_Form_Element_Text,您可以通过执行以下操作非常简单地在表单中插入自己的html /文本。

$text = new Zend_Form_Element_Text('descCharsRemaining');
$text->setValue("<p>2000 Characters Remaining</p>")
     ->helper = 'formNote';

然后将对象插入addElements数组

$this->addElements(array(

   // My other form elements

   $text,

   // My other form elements

更新:我发现了一种更简单的方法,只需将以下内容直接包含在数组中

array(
  'note',
  'desc',
     array(
       'value' => '<p>2000 Characters Remaining</p>'
     ),
),

结果是,

<dd id="descCharsRemaining-element">
  <p>2000 Characters Remaining</p>
</dd>

答案 1 :(得分:0)

div不是表单元素,我不知道它将如何接受一个值。为此,您可以通过扩展zend_form_element,创建自定义装饰器并控制元素的呈现方式或编写视图脚本来替换装饰器来创建新的zend_form元素。