Добавить текст / HTML за элементом формы? - PullRequest
1 голос
/ 25 октября 2009

Как добавить текст за элементом формы в Zend Framework? Допустим, у меня есть поле ввода текста, сначала есть метка, ниже метки есть поле фактического ввода, но я хочу добавить дополнительный текст (2-3 предложения) за полем ввода. Что-то вроде краткого совета или предложения о том, что является лучшим значением для этого поля.

Ответы [ 3 ]

1 голос
/ 25 октября 2009

Richard

тебе нужен декоратор! :) Они иногда немного сложны, но я использовал следующий учебник , который, вероятно, немного устарел, но не менее полезен. Особенно проверяйте использование legend. Я думаю, что это идеально подходит для того, что вы хотите сделать.

Надеюсь, это поможет!

1 голос
/ 12 ноября 2009

Вы можете просто добавить описание к элементу ввода, например,

$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))
 )); 

Вы также можете проверить эту серию руководств о Zend Form Decorators .

1 голос
/ 25 октября 2009

Вы можете использовать опцию description как опцию элемента для добавления тега

с вашим описанием после элемента (с декораторами по умолчанию.)

Ваша стратегия тогда просто требует некоторого CSS, чтобы расположить описание в нужном месте. Что-то вроде

dd.myelement{
position: relative;
}

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

Вероятно, вам понадобятся свойства z-index для ввода и p:

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

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

Возможно, отсутствует свойство CSS (я написал это по памяти), но я надеюсь, что вы поняли:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...