gpt4 book ai didi

php - 如何在 Zend 框架中设置表单样式?

转载 作者:可可西里 更新时间:2023-11-01 00:52:21 25 4
gpt4 key购买 nike

我真的很喜欢将表单放入一个单独的类来管理验证等的想法,但我不喜欢所有的东西都以 DL 结尾,而且我也不喜欢在像 <input type='checkbox' name='data[]'> 这样的帖子元素中使用方括号表示法。 .

是否有另一种生成表单的方法——比如在 View 中,这样我就可以按照我想要的方式设置它们的样式,同时保持验证方面?另外,我如何将这个 View 加载到我当前的 View 中(以某种方式使用局部 View ?)

最佳答案

我建议使用完整的表单 ViewScript 来管理表单元素的显示方式。

例如,如果您希望它们显示为列表项,您将拥有如下所示的表单

<?php
class Default_Form_Myform extends Zend_Form
{
public function __construct($options = null) {
parent::__construct($options);
}
public function init() {
parent::init();
$this->setName('myform');
$name = new Zend_Form_Element_Text('name');
$name->setLabel('Name')
->setDescription('Give your name...');
$this->addElement($name);
$submit = new Zend_Form_Element_Submit('submit');
$this->addElement($submit);
$this->clearDecorators();
$this->setElementDecorators(
array(
'viewHelper',
'Errors',
array('Label', array('class' => 'delabel')),
'Description',
array('HtmlTag', array('tag' => 'li')),
)
);
// The template is at application/modules/default/views/myForm.phtml
$this->setDecorators(array(
array('ViewScript', array('viewScript' => 'myForm.phtml'))
));
}
}

然后您将在 application/modules/default/views/myForm.phtml 处拥有一个模板

所有元素都通过它们声明的名称来调用,例如 $this->element->name

<form action="<?= $this->element->getAction(); ?>"
method="<?= $this->element->getMethod(); ?>"
enctype="<?= $this->element->getEnctype(); ?>"
name="<?= $this->element->getName(); ?>">
<ul>
<?= $this->element->name; ?>
<?= $this->element->submit ?>
</ul>
</form>

现在在您的 View 脚本中,您只需要像往常一样回显表单 <?= $this->form; ?>

请注意,我正在使用模块,您可能会或可能不会在目录和类名中包含它

请考虑接受您问题的答案...

对于那些回答的人来说,这是值得的。

关于php - 如何在 Zend 框架中设置表单样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4553545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com