Php 以Zend格式设置描述
我正在我的项目中使用Zend框架。我想在我的表单中添加一个描述/注释,如 标有*的字段是必填字段 但是我没有发现如何向表单添加描述以及如何与装饰器一起使用它 我们将非常感谢您的帮助。谢谢Php 以Zend格式设置描述,php,zend-framework,zend-form,zend-decorators,Php,Zend Framework,Zend Form,Zend Decorators,我正在我的项目中使用Zend框架。我想在我的表单中添加一个描述/注释,如 标有*的字段是必填字段 但是我没有发现如何向表单添加描述以及如何与装饰器一起使用它 我们将非常感谢您的帮助。谢谢 class FormDecorators { public static $simpleElementDecorators = array( array('ViewHelper'), array('Label', array('tag' => 'span', 'e
class FormDecorators {
public static $simpleElementDecorators = array(
array('ViewHelper'),
array('Label', array('tag' => 'span', 'escape' => false, 'requiredPrefix' => '<span class="required">* </span>')),
array('Description', array('tag' => 'div', 'class' => 'desc-item')),
array('Errors', array('class' => 'errors')),
array('HtmlTag', array('tag' => 'div', 'class' => 'form-item'))
);
}
将描述添加到一个元素中,然后您可以将描述样式显示在底部的某个位置,我希望这会有所帮助,祝您度过愉快的一天。有两个选项:
使用来自装饰师或
扩展Zend_Form_元素以创建自定义
要素
我会选择后者,因为将原始html代码的一部分添加到表单中是非常常见的,不仅在元素之前或之后,而且在元素之间
你应该这样做:
class My_Form_Element_Raw extends Zend_Form_Element
{
protected $raw_html;
public function setRawHtml($value)
{
$this->raw_html = $value;
return $this;
}
public function getRawHtml()
{
return $this->raw_html;
}
public function render()
{
// you can use decorators here yourself if you want, or wrap html in container tags
return $this->raw_html;
}
}
$form = new Zend_Form();
// add elements
$form->addElement(
new My_Form_Element_Raw(
'my_raw_element',
array('raw_html' => '<p class="highlight">fields marked by * are mandatory</p>')
)
);
echo $form->render();
扩展Zend_Form_元素时,不需要覆盖setOption/s、getOption/s方法。
Zend在内部使用set*和get*以及protected属性来检测元素选项,如本例中的protected$raw_html;和公共函数setRawHtml$value和公共函数getRawHtml
此外,命名您的属性$raw_html将分别接受“raw_html”和“rawHtml”两个选项向表单中添加其他文本的最简单方法是将适当的html添加到页面视图中:
<div>
<h4>fields marked by * are mandatory</h>
<?php echo $this->form ?>
</div>
我相信,如果您愿意,您可以使用css显示您想要的任何注释。您可以输入一段代码吗?请参阅
<div>
<h4>fields marked by * are mandatory</h>
<?php echo $this->form ?>
</div>
<article class="login">
<form action="<?php echo $this->element->getAction() ?>"
method="<?php echo $this->element->getMethod() ?>">
<table>
<tr>
<th>Login</th>
</tr>
<tr>fields marked by * are mandatory</tr>
<tr>
<td><?php echo $this->element->name->renderViewHelper() ?></td>
</tr>
<tr>
<td><?php echo $this->element->password->renderViewHelper() ?></td>
</tr>
<tr>
<td><?php echo $this->element->submit ?></td>
</tr>
</table>
</form>
</article>
dt label.required:before {
content: "* ";
color: #ff0000;
}