0

主にチェックボックスを含むzend_formが必要です。それらをグループ化し、各グループのタイトルも表示する必要があります。例えば

見出し1

Label1 Check1

Label2 Check2

Label3 Check3

見出し2

Label4 Check4

Label5 Check5

Label6 Check6

まず、タイトル(「見出し」)の表示方法がわかりません!要素やその他のソリューションではなく、フォームにラベルを追加して、Zendフォームにこれらのタイトルを追加する方法はありますか?

次に、この方法でレンダリングするにはどうすればよいですか?どんなデコレータを使うべきですか?私はデコレータについて何かを赤くしましたが、それについてあまり理解していませんでしたか?

誰かアイデアはありますか?ありがとう!

4

2 に答える 2

4

マニュアルのこのセクションに興味があるかもしれません。これはまさにあなたが取得したいものについてのようです: 23.4.3. 表示グループ (引用) :

表示グループは、表示目的で要素の仮想グループを作成する方法です。フォーム内のすべての要素は引き続き名前でアクセスできますが、フォームまたはレンダリングを反復処理するときに、表示グループ内のすべての要素が一緒にレンダリングされます。これの最も一般的な使用例は、フィールドセット内の要素をグループ化することです。

これにより、フォーム要素をフィールドセットに再グループ化でき、それらのそれぞれに凡例を含めることができます。あなたの場合、それは「見出し X」になります。

チェックボックスがフォームに追加されたら、次のようなものを使用してそれらを再グループ化できるはずです。

$form->addDisplayGroup(array('checkbox1', 'checkbox2', 'checkbox3'), 'firstgroup');
$form->addDisplayGroup(array('checkbox4', 'checkbox5', 'checkbox6'), 'fsecondgroup');


レンダリング部分については、使用すると思いますZend_Form_Decorator_Fieldset


コメントの後に編集

各グループのタイトルを設定するには、その " legend" をオプションとして渡して設定する必要があります。

たとえば、これは私がかなり前に取り組んだ古いプロジェクトから見つけたコードの一部です。

$form->addDisplayGroup(array(
    'idCategory',
    'date',
    // ...
    'tags', 
    'nbComments'
), 
'postmeta', 
array(
    'order' => 2,
    'attribs' => array(
        'class' => 'group',
        'legend' => 'Meta-données'
    )
));

Meta-données」は、私が思い出す限り、legendこれらの要素を含むフィールドセットに使用される「 」です。

于 2009-09-20T18:09:30.050 に答える
0

このクラスを追加してみてください

class Zend_Form_Element_Note extends Zend_Form_Element_Xhtml
{
    public $helper = 'formNote';    
}

/Your/Own/Form/Element ディレクトリへ

$form->addPrefixPath( 'LSS_Form_Element', 'LSS/Form/Element', 'element' );

次に、見出しのような静的テキストを表示する「メモ」要素タイプを追加できます。例えば

$form->addElement( 'note', 'my_note', array( 'label' => 'Heading 1' ) );
于 2009-09-20T21:12:44.033 に答える