在我的表格中,我需要这个:
<li class ="af_title"><div>Contact form</div></li>
我知道如果我需要例如一个文本字段 - 那么我只需创建 Zend_Form_Element_Text 并将 HtmlTag 装饰器包裹在它周围 - 对吗?
问题:
1)我将如何生成 div 表单元素,以便我可以将装饰器包裹在它周围?
2)嗯。- 我如何将所述元素的内容设置为“联系表格”?
谢谢:)
在我的表格中,我需要这个:
<li class ="af_title"><div>Contact form</div></li>
我知道如果我需要例如一个文本字段 - 那么我只需创建 Zend_Form_Element_Text 并将 HtmlTag 装饰器包裹在它周围 - 对吗?
问题:
1)我将如何生成 div 表单元素,以便我可以将装饰器包裹在它周围?
2)嗯。- 我如何将所述元素的内容设置为“联系表格”?
谢谢:)
要包装div
内部的联系表格,<li class ="af_title">
您可以执行以下操作:
$yourForm = new YourForm();
$yourForm->addDecorator(array('div' => 'HtmlTag'), array('tag' => 'div'));
$yourForm->addDecorator(array('li' => 'HtmlTag'), array('tag' => 'li', 'class' => 'af_title'));
编辑:
我看到你说的是 div 表单元素。这样的元素不存在,但您可以轻松创建它。为此,您需要两件事:新的表单元素(即 div 元素)和一个负责生成 html 的表单视图助手。我允许自己准备这两个元素的简单示例来说明我的意思:
APPLICATION_PATH 中的 Div.php。/表格/元素:
class My_Form_Element_Div extends Zend_Form_Element {
/**
* Default form view helper to use for rendering
* @var string
*/
public $helper = 'formDiv';
public function __construct($spec, $options = null) {
parent::__construct($spec, $options);
$this->removeDecorator('label');
$this->removeDecorator('htmlTag');
}
}
APPLICATION_PATH 中的 FormDiv.php。/views/helpers:
class My_View_Helper_FormDiv extends Zend_View_Helper_FormElement {
public function formDiv($name, $value = null, $attribs = null) {
$class = '';
if (isset($attribs['class'])) {
$class = 'class = "'. $attribs['class'] .'"';
}
return "<li $class><div>$value</div></li>";
}
}
有了这个,您可以将 div 表单元素添加到其 init() 方法中的任何表单元素,如下所示:
$div = new My_Form_Element_Div('mydiv');
$div->setValue('Contact form')->setAttrib('class', 'af_title');
$this->addElement($div);