2010-12-13 13 views
5

Ich habe einen Formularersteller gebaut, und Ich brauche die Möglichkeit, jede Option in einem Radio-Element Beschreibung zuweisen. Nach der Erstellung dieses Funkelements ersuche ich den Benutzer, jedem Wert eine Beschreibung zuzuweisen, die neben dem Element angezeigt werden soll. Also, in meiner Datenbank habe ich einen Wert, einen Titel und eine Beschreibung für jede Option in diesem Radio-Element.Putting einige HTML neben einem Optionsfeld in Zend Form

Die Frage: Wie lege ich etwas neben ein Radio-Element? Muss ich eine neue Möglichkeit für das Formular erstellen, um Radioelemente zu rendern, oder kann dies über Dekoratoren geschehen?

Jedes bisschen hilft, nützliches Lesen ist auch willkommen!

Eine Darstellung von dem, was ich brauche:

**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  

Irgendwelche Ideen?

Antwort

12

Es ist schwer zu sagen von Ihrer Frage, aber wo ist der eigentliche Radio-Button in Ihrem Markup?

Wenn es nach links oder rechts neben der Option Etiketts ist, können Sie einfach das Etikett verwenden Ihre persönliche Markup eingeben und die escape der Viewhelper-Eigenschaft auf false HTML zu ermöglichen


Zum Beispiel

$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 
)); 

Sieht aus wie dieses

Form Screenshot

+0

Der Radiobutton selbst ist in einer Form. Und was ich tun möchte, ist eine Beschreibung für die Optionen, nicht das Radioelement selbst. Ich glaube nicht, dass es so etwas wie ein Optionslabel gibt, dort gibt es nur einen Wert und einen Titel. Ich denke nicht einmal, dass es Optionsdekoratoren gibt, da die Trennzeichen von einem Tag in der Klasse stammen. Ich dachte, dass es einen Weg geben könnte, den Separator für meine Zwecke zu benutzen, aber ich glaube nicht, dass das funktionieren wird. –

+1

@Janis Jede Optionsfeldoption hat einen Wert und ein Label. Diese werden beim Hinzufügen der Multi-Optionen über key => value-Paare gesetzt. Sie können das Optionslabel vor (vor) oder nach (Anhängen) des Optionsfeldelements positionieren und den ViewHelper-Dekorator darüber informieren, dass Markup in den Beschriftungen nicht entfernt werden soll. – Phil

+0

Ok, das klingt vielversprechend. Könnten Sie bitte ein Beispiel geben, wie ich das erreichen könnte? Vielen Dank! –

0

Schauen Sie sich das Tutorial an, das ich geschrieben habe, um dieses Problem zu lösen.

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

+0

In Ihrem Fall (komplexe Markup) würde ich mit einem benutzerdefinierten Dekorateur gegangen und/oder zeige Helfer an. – Phil

+0

Ich habe keinen guten Custom Decorator gesehen, der für Radiogruppenelemente funktioniert hat. Die Möglichkeit, HTML zum Etikett hinzuzufügen, war die beste Option und einfacher zu handhaben als Dekoratoren, die schlecht dokumentiert sind. Weißt du, wo es ein gutes Tutorial für Radio-Element-Dekoratoren gibt? Die Dokumentation darauf ist schrecklich! – Wes

Verwandte Themen