0

初めての Zend PHP アプリを作成していて、助けが必要です。Zend_Form を拡張するクラスを作成してフォームを生成し、 init() で次のような要素を追加しています。

    $user = $this->addElement('text', 'user', array(

    'filters'    => array('StringTrim'),

    'validators' => array(

            array('StringLength', false, array(3, 30)),

        ),

    'required'   => true,

    'label'      => 'Name',

        'size' => 30 

    ));

ここで、フォームの先頭にカスタム html 段落 (<p>要素) とカスタム テキストを追加する必要があります。どうすればこれを行うことができますか?

PS: 古い ZEND (ZF2 より前) を使用しています。

4

2 に答える 2

2

次のように、フォームをレンダリングするビューに任意の html コードを挿入できます。

file: formView.phtml

----------
<p> Here's my text </p>

<?php echo $this->form; ?>

ただし、<p> ブロックを <form> タグ内に配置したい場合は、viewscript デコレータを使用して実現します。

フォーム クラスの init メソッドに次のようなものを追加します。

$this->setDecorators(array(
        array('ViewScript', array('viewScript' => 'templates/myForm.phtml'))
    ));

そして、templates/myForm.phtml ファイルでは、フォームを好きなようにレンダリングできます。次に例を示します。

<?php $form = $this->element; ?>
<form action="<?php echo $form->getAction(); ?>">
      <p> Your text goes here </p>
     <?php echo $form->user; ?>
</form>

私は自分自身を明確にしたことを願っています。ご不明な点がございましたら、お気軽にお問い合わせください

ここでビュースクリプトデコレータの詳細を読むことができます http://framework.zend.com/manual/1.12/en/zend.form.standardDecorators.html#zend.form.standardDecorators.viewScript

于 2012-11-15T18:32:17.433 に答える
0

このデコレータが役に立つかもしれないことを確認してください

$this->setDecorators(array(

           'FormElements',
           array(array('data'=>'HtmlTag'),array('tag'=>'p')),
           'Form'

   ));
于 2012-11-13T11:26:17.037 に答える