2016-06-14 11 views
0

Ich habe derzeit ein Formular mit Kontrollkästchen. Ich möchte Checkboxen anpassen, so dass sie ein Drop-down-Menü haben (im DOM). Wenn der Benutzer ein Kontrollkästchen ankreuzt, sollte sein Dropdown-Menü direkt darunter erscheinen. Das Dropdown-Menü zu sehen, wenn das Kontrollkästchen aktiviert ist, ist kein Problem, aber ich kann Symfony nicht dazu bringen, das Dropdown in meinem Formular hinzuzufügen. Alles, was ich bisher tun kann, ist ein neues Feld am unteren Rand des Formulars, aber ich brauche das Dropdown-Menü nach jedem Kontrollkästchen.Dropdown-Menü zum Anzeigen, wenn das Kontrollkästchen ausgewählt ist

Die Dropdownlisten können auch nicht von JavaScript generiert werden, da sie Daten aus der Datenbank enthalten. Ich weiß, dass ich einen Workaround in JS erstellen könnte, aber ich würde diesen Ansatz lieber nicht verwenden.

Ich habe verschiedene Dinge in den letzten paar Tagen gesucht und ausprobiert, aber ohne Erfolg.

Ist dies mit Symfony2 möglich?

Hinweis: Ich bin auf der Suche nach dem PHP-Teil der Dinge, die JS, um das Dropdown-Menü zu zeigen, wird kein Problem sein.

Vielen Dank

+0

Sie haben nach was genau gesucht? Wie rende ich eine Auswahlbox? –

+0

Der PHP-Teil der Dinge? PHP hat nichts mit dem DOM zu tun. Dies ist ausschließlich eine Javascript-Frage. Vielleicht haben Sie deshalb bei Google nichts gefunden. Entweder das, oder Ihre Frage ist einfach scheiße und muss neu geschrieben und klarer gemacht werden. –

+0

Ich fügte Details hinzu - es war in der Tat nicht so klar. –

Antwort

0

Nun, es gibt zwei sichtbare Möglichkeiten, es zu tun.

1-Machen Sie alle Arbeit in Javascript, Erstellen einer neuen Combo im laufenden Betrieb, wenn das Kontrollkästchen geklickt hat, Hinzufügen der Komponente zum Formular mit einem bestimmten Attribut "Name", mit dem Sie wissen, welche Kontrollkästchen gehören, erhalten der Wert dann und mach was du brauchst. Zum Beispiel müssen Sie eine vorbereitete Vorlage haben die Combo für das Erstellen wie:

<select id="onthefly_x" name="onthefly_x"> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
    <option value="3">Three</option> 
    <option value="4">Four</option> 
</select> 

Und dann vor erstellen die Komponente das „x“ für die Checkbox vale ersetzen (Wenn das die Checkbox als Einheit-ID identifizieren). Auf diese Weise können Sie in der Steuerung fragen, ob für die Checkbox ein Wert vorhanden ist.

2- Als zweite Möglichkeit können Sie das Formular so erstellen, dass die Kombination immer mit dem Kontrollkästchen, aber durch ein Klassenattribut verdeckt war. Dann müssen Sie es nur über den Checkbox-Klick sichtbar machen. Das Problem hier ist, dass alle Combos eingereicht werden, also müssen Sie den Controller einchecken, welcher von ihnen kam mit einer ausgewählten Checkbox.

Hoffe, dass Sie die Idee bekommen können.

+0

Danke für Ihre Antwort. Gibt es überhaupt keine Möglichkeit, diese Server-Seite zu machen? Die JS-Lösung ist diejenige, die ich vermeiden möchte. –

+1

Nun, ich nehme an, dass Sie ein Formular mit einer Combo für jedes Kontrollkästchen erstellen können und alle von ihnen mit einer Klasse versteckt und nicht erforderlich, und zeigen Sie dann die Komponente auf Klick .Das könnte für Sie arbeiten? – abdiel

+0

Ja, das klingt nach dem, was ich brauche. Wären Sie zufällig in der Lage, dies zu tun? –

Verwandte Themen