Zend_Form:如何添加自定义的HTML
问题描述:
我是bussy用zend_form创建一个表单来添加页面到网站。此表单适用于CMS。Zend_Form:如何添加自定义的HTML
这是代码:
public function init()
{
// display errors on top
$this->setDecorators(array(
array('FormErrors', array('markupElementLabelEnd' =>'', 'markupElementLabelStart' =>'')),
'FormElements',
array('HtmlTag', array('tag' => 'dl', 'class' => 'zend_form')),
'Form'
));
// Set standard properties
$this->setName('Admin_Form_Addpage')
->setAction("");
// Textbox for the page title. The textbox is required
$title = new Zend_Form_Element_Text('title');
$title->setLabel('Title')
->setAttrib('placeholder', 'Title')
->setAttrib('autofocus', "")
->setRequired();
// WYSIWYG editor
$wysiwyg = new Zend_Form_Element_Textarea('pagecontent');
$wysiwyg->setLabel('Content')
->setRequired();
// Advanced CSS
$css = new Zend_Form_Element_Textarea('css');
$css->setLabel('CSS')
->setAttrib('rows', 10)
->setAttrib('cols', 60);
// Advanced JS
$js = new Zend_Form_Element_Textarea('js');
$js->setLabel('Java Script')
->setAttrib('rows', 10)
->setAttrib('cols', 60);
// Build form
$this->addElement($title)
->addElement($wysiwyg)
// Add submit button
->addElement('submit', 'add', array('label' => 'Add'))
->addElement($css)
->addElement($js)
->addDisplayGroup(array('css','js'), 'advanced',array('disableLoadDefaultDecorators' => true));
$advanced = $this->getDisplayGroup('advanced');
$advanced->setDecorators(array(
'FormElements',
array('HtmlTag', array('tag' => 'div', 'id' => 'div_advanced'))
));
/**
* Remove Errors decorator from all elements
* so that they don't also display them
*/
foreach ($this->getElements() as $element) {
$element->removeDecorator('Errors');
}
现在我想切换使用jQuery的先进组件。但为了这个工作,我需要一个链接。
所以我的问题是,有没有人知道如何做到这一点?或者甚至更好有一个自定义窗体元素,可以添加所有类型的HTML?
谢谢
伊沃Trompert
答
您可以通过几种方式将HTML添加到Zend_Form中。我看到你已经使用装饰器和HtmlTag,这很好。你有没有看过DivTag,Label和我的个人喜好,Description?
$this->addDecorators(array(
array('ViewHelper'),
array('Errors'),
array('Description', array('tag' => 'p', 'class' => 'description')),
array('HtmlTag', array('tag' => 'dd')),
array('Label', array('tag' => 'dt')),
));
使用它们的组合应该允许您将基本HTML添加到您的表单并添加div,类和ID。 Zend Form Elements