在表单元素后面添加text / html?

时间:2009-10-25 18:15:55

标签: php zend-framework

如何在Zend Framework中添加表单元素后面的文本?假设我有一个文本输入字段,首先有一个标签,标签下面有一个实际的输入字段,但我想在输入字段后面添加一些额外的文本(2-3个句子)。像是一个简短的提示或建议,这个领域的最佳价值。

3 个答案:

答案 0 :(得分:1)

您可以使用说明选项作为元素选项添加< p>在元素之后使用您的描述标记(使用默认装饰器。)

您的策略只需要一些CSS将描述放在正确的位置。像

这样的东西
dd.myelement{
position: relative;
}

dd.myelement p {
position: absolute;
top:0;
right: 0;
}

您可能还需要输入和p上的z-index属性:

dd.myelement p {
z-index: 1;
}

dd.myelement input {
z-index: 2;
}

可能缺少一个CSS属性(我已经从内存中写过),但我希望你能得到这个想法:)

答案 1 :(得分:1)

理查德,

你需要装饰师! :)它们有时候有点复杂,但我一直在使用以下tutorial,这可能有点过时,但并没有那么有用。特别检查legend的使用情况。我认为这对你想做的事情是完美的。

希望这有帮助!

答案 2 :(得分:1)

您只需在输入元素中添加说明,例如

$element = new Zend_Form_Element_Text('itemName', array(
      'label' => 'My Label',
      'description' => 'Enter some text'
));

来自ZF手册第23.7.3章。 Zend_Form_Decorator_Description

  

默认情况下,如果不存在说明,则不会生成任何输出。如果存在描述,则默认情况下它将包装在HTML p标记中,但您可以通过在创建装饰器时传递标记选项或调用setTag()来指定标记。您还可以使用class选项或通过调用setClass()来为标记指定类;默认情况下,使用类“提示”。

因此,要修改装饰器,您可以编写类似

的内容
$element->setDecorators(
    array(
        'ViewHelper',
        'Errors',
        array('Description', array('placement' => 'append', 
                                   'escape' => false, 
                                   'tag' => 'span')),
        array('HtmlTag', array('tag' => 'dd')),
        array('Label', array('tag' => 'dt', 'escape' => false))
 )); 

您也可以查看this series of tutorials about Zend Form Decorators