加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

zend-framework – 如何摆脱Zend_Form dl,dt,dd标签?

发布时间:2020-12-13 22:12:15 所属栏目:PHP教程 来源:网络整理
导读:我想摆脱Zend_Form的定义列表格式.这是我要去的布局: form p label for="email" class="required"Your email address:/label input type="text" name="email" id="email" value="" /p p input type="submit" name="submit" id="submit" value="Subscribe" /
我想摆脱Zend_Form的定义列表格式.这是我要去的布局:

<form>
    <p>
        <label for="email" class="required">Your email address:</label>
        <input type="text" name="email" id="email" value="">
    </p>
    <p>
        <input type="submit" name="submit" id="submit" value="Subscribe">
    </p>
    <input type="hidden" name="active" value="true" id="active">
    <input type="hidden" name="signupDate" value="" id="signupDate">
</form>

为了获得这种布局,我需要对表单做些什么?

class Default_Form_Subscribe extends Zend_Form
{
    public function init()
    {
        $this->setMethod('post');

        $this->addElement('text','email',array(
            'label'      => 'Email address:','required'   => true,'filters'    => array('StringTrim'),'validators' => array('EmailAddress')
        ));

        $this->addElement('submit','submit',array(
            'label'    => 'Subscribe','ignore'   => true
        ));

        $this->addElement('hidden','active',array(
            'value'=>'true'
        ));
        $this->addElement('hidden','signupDate',array(
            'value' => Zend_Date::now()->toString('YYYY-MM-dd')
        ));
    }
}

解决方法

啊,打败我…我采用创建可应用于特定元素的自定义定义的方法.还必须重置表单上的装饰器以删除默认的’dl’包装器,似乎完全符合您的需要:

class Default_Form_Subscribe extends Zend_Form
{
    public function init()
    {
        $this->setMethod('post');

        // reset form decorators to remove the 'dl' wrapper
        $this->setDecorators(array('FormElements','Form'));

        // custom decorator definition for form elements
        $customElementDecorators = array(
            'ViewHelper','Errors',array(
                'Description',array('tag' => 'p','class' => 'description')
            ),array(
                'Label',array('separator' => ' ')
            ),array(
                array('data' => 'HtmlTag'),array('tag' => 'p')
            )
        );

        $this->addElement('text','validators' => array('EmailAddress'),'decorators' => $customElementDecorators
        ));

        $this->addElement('submit','ignore'   => true,'decorators' => $customElementDecorators
        ));

        $this->addElement('hidden',array(
            'value'=>'true','decorators' => array('ViewHelper')
        ));
        $this->addElement('hidden',array(
            'value' => Zend_Date::now()->toString('YYYY-MM-dd'),'decorators' => array('ViewHelper')
        ));
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读