Подтвердить что ты не робот

Как добавить "обычный текст node" в форму zend?

Я пытаюсь добавить простой текст node в форме zend - цель состоит только в том, чтобы отправлять только статический текст.

Проблема заключается в том, что я не знаю о таком способе этого делать.

Я использовал "описание", но это должно быть привязано к элементу формы.

Есть ли способ просто отобразить какой-либо текст как часть формы? Zend рассматривает все как элемент формы, поэтому я не могу просто распечатать его.

Например:

Следующее проверит ваши способности так и так. , , ,

и т.д...

Любые мысли?

4b9b3361

Ответ 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')));