如何在一个div中附加两个元素?

时间:2011-03-25 14:10:06

标签: php zend-framework zend-form decorator

我有表单,我想在一个div中添加几个元素。但是我犯了一个错误。有人能帮我吗。这是我的代码:

class Application_Form_Register extends Zend_Form
{
    public function init()
    {
        $this->addElement('text', 'a', array(
            'label' => 'aa',
            'required'  => true,
        ));
        $this->addElement('text', 'b', array(
            'label' => 'bb',
            'required'  => true,
        ));
        $this->addElement('text', 'c', array(
            'label' => 'cc',
            'required'  => true,
        ));
        $this->addElement('text', 'd', array(
            'label' => 'dd',
            'required'  => true,
        ));
        $this->addElement('text', 'e', array(
            'label' => 'ee',
            'required'  => true,
        ));

        $this->getElement('c')->addDecorator('HtmlTag', array('tag' => 'div', 'openOnly' => 'true',  'placement' => Zend_Form_Decorator_Abstract::PREPEND,));
        $this->getElement('d')->addDecorator('HtmlTag', array('tag' => 'div', 'closeOnly' => 'true',));
    }
}

然后我渲染表格我得到像:

<form enctype="application/x-www-form-urlencoded" action="" method="post">
<dl class="zend_form">
<dt id="a-label"><label for="a" class="required">aa</label></dt>

<dd id="a-element">
<input type="text" name="a" id="a" value="" /></dd>
<dt id="b-label"><label for="b" class="required">bb</label></dt>
<dd id="b-element">
<input type="text" name="b" id="b" value="" /></dd>
<dt id="c-label"><label for="c" class="required">cc</label></dt>

<div>

<input type="text" name="c" id="c" value="" />
<dt id="d-label"><label for="d" class="required">dd</label></dt>

<input type="text" name="d" id="d" value="" />

</div>

<dt id="e-label"><label for="e" class="required">ee</label></dt>

我设置decoratos将DIV设置为包含 C D 元素,但是我附上 D C 输入但不是 C 标签

何以在行前获得DIV:

<dt id="c-label"><label for="c" class="required">cc</label></dt>

2 个答案:

答案 0 :(得分:2)

Display groups用于对表单元素进行分组。我会坚持下去。小心分裂。

答案 1 :(得分:1)

要更改您的Html输出,我会尝试使用一些使用不同视图助手的自定义表单元素对象。在ehivh中,您可以轻松定义输出的外观,例如:放置和包装标签以及元素的所有其他子部分。