2010-12-13 3 views
5

フォームビルダーを構築しました。ラジオ要素内のすべてのオプションに説明を割り当てる必要があります。このラジオ要素が作成されると、各値の説明を要素の隣に表示するようにユーザーに依頼します。 私のデータベースには、このラジオ要素の各オプションの値、タイトル、および説明があります。Zend Formのラジオボタンの隣にHTMLを置く

質問: ラジオの要素の横に何かを配置しますか?フォームでラジオ要素をレンダリングする新しい方法を作成する必要がありますか、デコレータで行うことはできますか?

少しでも役立ちます、役に立つ読書も歓迎です!

私は必要なものの表現:

**A title of the Radio element** 
     O Option 1  - A description for option 1  
     O Option 2  - A description for option 2  
     O Option 3  - A description for option 3  
     O Option 4  - A description for option 4  

任意のアイデア?

答えて

12

質問からは分かりませんが、マークアップの実際のラジオボタンはどこですか?それは、オプションラベルの左または右になら

することは、あなたは単に

例えばHTML


を有効にするfalseにあなたの余分なマークアップを入力しなViewHelperのescapeプロパティを設定するためにラベルを使用することができます

$form->addElement('radio', 'test', array(
    'label' => '**A title of the Radio element**', 
    'multiOptions' => array(
     1 => 'Option 1 <strong>- A description for option 1</strong>', 
     2 => 'Option 2 <strong>- A description for option 2</strong>' 
    ), 
    'escape' => false 
)); 

この

Form Screenshot

のように見えます
+0

ラジオボタン自体はフォームにあります。そして私がしたいのは、ラジオ要素自体ではなく、オプションの説明です。私はオプションラベルのようなものがあるとは思わないが、そこには価値とタイトルだけがある。私はセパレータがクラスのタグによって行われているので、オプションデコレータがあるとは思わない。私は、私の目的のためにセパレータを使用する方法があるかもしれないと思ったが、そうするだろうとは思わない。 –

+1

@Janis各ラジオボタンオプションには値とラベルがあります。これらは、マルチオプションを追加するときにキー=>値のペアで設定されます。ラジオボタン要素の前(前)または後(オプション)にオプションラベルを配置し、ラベル内のマークアップからエスケープしないようにViewHelperデコレータに通知することもできます。 – Phil

+0

これは有望ですね。どのように私はこれを達成することができたか、いくつかの種類の例を提供していただけますか?ありがとう! –

0

この問題を解決するためのチュートリアルを確認してください。

http://wesleyalmeida.net/what-ive-learned/how-to-decorate-a-radio-element-in-zend/

+0

あなたのケース(複雑なマークアップ)では、私はカスタムデコレータ、またはヘルパーを表示する。 – Phil

+0

私は、ラジオのグループ要素のために働いている良いカスタムデコレータを見ていません。ラベルにHTMLを追加できることは、文書化されていないデコレータよりも最適な選択肢であり、使いやすくなっています。ラジオ要素デコレータに関する良いチュートリアルはどこにありますか?その文書は恐ろしいです! – Wes