Как добавить "обычный текст node" в форму zend?
Я пытаюсь добавить простой текст node в форме zend - цель состоит только в том, чтобы отправлять только статический текст.
Проблема заключается в том, что я не знаю о таком способе этого делать.
Я использовал "описание", но это должно быть привязано к элементу формы.
Есть ли способ просто отобразить какой-либо текст как часть формы? Zend рассматривает все как элемент формы, поэтому я не могу просто распечатать его.
Например:
Следующее проверит ваши способности так и так.
,
,
,
и т.д...
Любые мысли?
Ответы
Ответ 1
Может быть, лучший способ, но я создал абзац, используя пользовательский элемент формы и помощник вида. Кажется, очень много кода для чего-то такого простого. Пожалуйста, дайте мне знать, если вы нашли более упрощенный способ сделать это.
//From your form, add the MyParagraph element
$this->addElement(new Zend_Form_Element_MyParagraph('myParagraph'));
class Zend_Form_Element_MyParagraph extends Zend_Form_Element
{
public $helper = 'myParagraph';
public function init()
{
$view = $this->getView();
}
}
class Zend_View_Helper_MyParagraph extends Zend_View_Helper_FormElement {
public function init() {
}
public function myParagraph() {
$html = '<p>hello world</p>';
return $html;
}
}
Ответ 2
Zend имеет вспомогательный элемент вида для заметок формы (Zend_View_Helper_FormNote), который вы можете использовать для добавления текста.
Просто создайте новый элемент формы (/application/forms/Element/Note.php):
class Application_Form_Element_Note extends Zend_Form_Element_Xhtml
{
public $helper = 'formNote';
}
В вашей форме:
$note = new Application_Form_Element_Note(
'test',
array('value' => 'This is a <b>test</b>')
);
$this->addElement($note);
Ответ 3
Добавление скрытого элемента с неэкранированным описанием делает вещь.
$form->addElement('hidden', 'plaintext', array(
'description' => 'Hello world! <a href="#">Check it out</a>',
'ignore' => true,
'decorators' => array(
array('Description', array('escape'=>false, 'tag'=>'')),
),
));
Работает отлично. Он все еще привязан к элементу, который, однако, не отображается таким образом.
Код, взятый из: http://paveldubinin.com/2011/04/7-quick-tips-on-zend-form/
Ответ 4
Немного поздно, но подумал, что я все равно выброшу его на благо сообщества.
Айн ударил ноготь по голове. FormNote - это то, что вам нужно, если вы хотите использовать текст в Zend_Form. Однако вы можете использовать его без необходимости расширения Zend_Form_Element_Xhtml. См. Пример ниже:
$text = new Zend_Form_Element_Text('myformnote');
$text->setValue("Text goes here")
->helper = 'formNote';
Обратите внимание, что вы можете использовать как текст, так и html с помощью помощника formNote.
Ответ 5
Эта функция встроена в Zend через Zend_Form_Element_Note.
$note = new Zend_Form_Element_Note('forgot_password');
$note->setValue('<a href="' . $this->getView()->serverUrl($this->getView()->url(array('action' => 'forgot-password'))) . '">Forgot Password?</a>');
Ответ 6
Я столкнулся с той же проблемой и решил, что лучше вообще не использовать Zend_Form, а использовать непосредственно просмотр помощников (например, Ruby on Rails) и проверить на модели.
Ответ 7
Этот однострочный у меня работает:
$objectForm->addElement(new Zend_Form_Element_Note('note', array('value' => 'Hello World')));