20

Zendフォームにプレーンテキストノードを追加しようとしています-目的は、静的テキストのみを表示することです。

問題は、そのような方法を知らないことです。

「説明」を使用しましたが、それはフォーム要素に添付する必要があります。

テキストをフォームの一部として単純に表示する方法はありますか? Zend はすべてをフォーム要素と見なすため、単純に印刷することはできません。

例えば:

以下は、あなたの能力をテストします。. . .

等...

何かご意見は?

4

7 に答える 7

38

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);
于 2010-10-12T09:35:59.100 に答える
10

エスケープされていない説明を含む非表示の要素を追加すると、問題が解決します。

$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/

于 2012-07-12T09:21:08.577 に答える
6

もっと良い方法があるかもしれませんが、カスタム フォーム要素とビュー ヘルパーを使用して段落を作成しました。とても単純なものの多くのコードのようです。もっと簡単にできる方法があれば教えてください。

//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;
    }

}
于 2010-03-18T17:01:18.190 に答える
6

少し遅れましたが、とにかくコミュニティの利益のためにそれを投入しようと思いました.

アイネは頭に釘を打ちました。FormNote は、Zend_Form でテキストを使用する場合に必要なものです。ただし、Zend_Form_Element_Xhtml を拡張しなくても使用できます。以下の例を参照してください。

$text = new Zend_Form_Element_Text('myformnote');
$text->setValue("Text goes here")
     ->helper = 'formNote';

formNote ヘルパーでは、テキストと html の両方を使用できることに注意してください。

于 2013-04-09T17:43:33.077 に答える
5

この機能は、Zend_Form_Element_Note を介して Zend に組み込まれています。

$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>');
于 2013-11-15T02:02:51.557 に答える
3

私は同じ問題に直面し、Zend_Form をまったく使用しない方がよいと判断しましたが、(Ruby on Rails のように) ビュー ヘルパーを直接使用し、モデルで検証することを決定しました。

于 2010-03-04T17:07:52.813 に答える