Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF][Symfony2] Jak dodać klasę do każdego option w polu select?
Forum PHP.pl > Forum > PHP > Frameworki
Foxx
Mam w formularzu pole typu entity i wyświetlam je w postaci selecta. Chciałbym dodać atrybut class="..." do każdego elementu <option> gdzie jego wartością będzie identyfikator rodzica tego elementu. W jaki sposób mógłbym to zrobić?
Foxx
Jesteś pewien, że to rozwiązanie umożliwi nadanie różnej klasy dla każdego <option>?
Crozin
Szybki podgląd źródeł: https://github.com/symfony/symfony/blob/mas...t.html.twig#L87 - przy domyślnych ustawieniach w ogóle nie da się określić parametrów dla OPTION. Mógłbyś oczywiście nadpisać blok choice_widget_options oraz kontrolkę choice z formularzu, ale... mógłbyś opisać co dokładnie chciałbyś osiągnąć? Tzn. w jakim celu chciałbyś elementom OPTION nadawać klasy?
thek
Jeśli masz zamiar tak kombinować, to nie obejdzie się niestety bez zdefiniowania własnego form_theme, a konkretniej albo przeciążenia choice_widget'a, albo
możesz też do własnego forma przepchnąć zmienną i z jej pomocą dorzucić to, czego Ci brakuje. Osobiście szedłbym w pierwsze rozwiązanie, czyli warto byś zajrzał tu: Creating a Template for the Field i pokombinował właśnie z Form Themes, bo własny theme i tak Cię nie ominie. Tu masz małą podpowiedź jak radzić sobie z choice widgetem wink.gif Naprawdę warto pobawić się z Twigiem i jego customowymi themami, bo prędzej czy później się w swojej karierze z tym problemem zderzysz. Im prędzej poznasz sposoby radzenia z tym, tym łatwiej będzie Ci w przyszłości.
mimol
Czy rzeczywiście korzystacie z pisania własnego motywu do formularzy?
Nie łatwiej/szybciej po prostu do widoku wkleić kod html(formularza)
thek
Ja korzystam. Przydaje się przy tych niestandardowych wykorzystaniach w stylu autocompletery, selecty zależne, dynamiczne widgety mające dodatkowe skrypty js wplecione i tego typu atrakcje. Jak sobie wyobrażasz formularz tworzony w pełni dynamicznie po stronie klienta, który przy walidacji musi się w końcu jakoś przez nią przepchnąć i w razie błędu jakoś wrócić? Zdefiniowany statycznym html?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.