Contao-Camp 2024
Ergebnis 1 bis 3 von 3

Thema: DCA gruppierte Checkboxen

  1. #1
    Contao-Nutzer Avatar von Dillinja
    Registriert seit
    13.07.2009.
    Ort
    Dresden
    Beiträge
    109

    Standard DCA gruppierte Checkboxen

    Liebe Leute,

    kurz zum Rahmen:

    Contao 4.13.11
    PHP: 8.1


    Ich habe per DCA die Mitgliederregistrierung um ein gruppiertes Checkbox-Menü erweitert (Länder nach Kontinenten gruppiert).
    Wie hier beschrieben: https://docs.contao.org/dev/reference/widgets/checkbox/
    [ 'foo' => ['a', 'b'], 'bar' => ['c', 'd'] ]

    In der Datenbank speichere ich es so ab -> 'sql' => ['type' => 'blob', 'notnull' => false]

    ...

    Im Backend funktioniert es wie gewünscht,

    Anhang 25887

    nur im Frontend-Modul bekomme ich es nicht angezeigt. Die Gruppen werden als INPUT (checked) mit einem leeren LABEL gerendert.

    HTML-Code:
    <fieldset id="ctrl_countries_17" class="checkbox_container">
    <legend>
    Länder:              </legend>
    <input type="hidden" name="countries" value="">
    <span><input type="checkbox" name="countries[]" id="opt_countries_17_Afrika" class="checkbox" value="" checked=""> <label id="lbl_countries_17_Afrika" for="opt_countries_17_Afrika"></label></span>
    <span><input type="checkbox" name="countries[]" id="opt_countries_17_Asien" class="checkbox" value="" checked=""> <label id="lbl_countries_17_Asien" for="opt_countries_17_Asien"></label></span>
    <span><input type="checkbox" name="countries[]" id="opt_countries_17_Europa" class="checkbox" value="" checked=""> <label id="lbl_countries_17_Europa" for="opt_countries_17_Europa"></label></span>
    <span><input type="checkbox" name="countries[]" id="opt_countries_17_Nordamerika" class="checkbox" value="" checked=""> <label id="lbl_countries_17_Nordamerika" for="opt_countries_17_Nordamerika"></label></span>
    <span><input type="checkbox" name="countries[]" id="opt_countries_17_Ozeanien" class="checkbox" value="" checked=""> <label id="lbl_countries_17_Ozeanien" for="opt_countries_17_Ozeanien"></label></span>
    <span><input type="checkbox" name="countries[]" id="opt_countries_17_Südamerika" class="checkbox" value="" checked=""> <label id="lbl_countries_17_Südamerika" for="opt_countries_17_Südamerika"></label></span>
    </fieldset>
    Ich hatte die Hoffnung, dass es genau wie vom Formulargenerator -> Checkbox-Menü -> Häkchen bei Gruppe gesetzt, funktioniert.

    Wo kann ich hier am besten ansetzen um weiter zu kommen? Es müssten doch Fieldsets für Gruppen erzeugt werden.

    Vielen Dank für eure Gedankenanstöße
    Micha

  2. #2
    Contao-Nutzer Avatar von Dillinja
    Registriert seit
    13.07.2009.
    Ort
    Dresden
    Beiträge
    109

    Standard

    ich habe es jetzt so gelöst, dass ich die Fieldsets (Gruppen) mit den Checkboxen im form_checkbox.html5 Template auflöse und ausgebe.

  3. #3
    Contao-Nutzer Avatar von Dillinja
    Registriert seit
    13.07.2009.
    Ort
    Dresden
    Beiträge
    109

    Standard

    Ich komme leider mit meiner manipulierten form_checkbox.html5 nicht weiter.

    Im Registrierungsprozess (Frontend) eines neuen Mitglieds wird die Auswahl entsprechend gespeichert. Im Backend sowieso. Nur das Ändern dieser (Modul: Personendaten) schlägt fehl.

    kann:
    Code:
    $this->getOptions() as $option
    mit gruppierten Checkboxen umgehen?

    das Array in $option sieht anders aus, als bei nicht gruppierten Checkboxen.

    nicht gruppierte:
    HTML-Code:
    <!-- #contao: Array
    (
    [value] => DEU
    [label] => Deutsch
    [type] => option
    [name] => languages[]
    [id] => languages_11_0
    [checked] =>  checked
    [attributes] =>
    )
    -->
    <!-- #contao: Array
    (
    [value] => ENG
    [label] => English
    [type] => option
    [name] => languages[]
    [id] => languages_11_1
    [checked] =>
    [attributes] =>
    )
    -->
    <!-- #contao: Array
    (
    [value] => +
    [label] => Weitere
    [type] => option
    [name] => languages[]
    [id] => languages_11_2
    [checked] =>
    [attributes] =>
    )
    -->
    über den Formulargenerator gruppierte bekommen noch Umschlagelemente ([type] -> 'group_start' und 'group_end')

    und gruppierte (Beispiel aus Doku) kommen so raus:
    HTML-Code:
    !-- #eigenes:Array
    (
    [0] => Array
    (
    [value] => a
    [label] => a
    )
    [1] => Array
    (
    [value] => b
    [label] => b
    )
    [type] => option
    [name] => countries[]
    [id] => countries_11_foo
    [value] =>
    [checked] =>
    [attributes] =>
    [label] =>
    )
    -->
    <!-- #eigenes:Array
    (
    [0] => Array
    (
    [value] => c
    [label] => c
    )
    [1] => Array
    (
    [value] => d
    [label] => d
    )
    [type] => option
    [name] => countries[]
    [id] => countries_11_bar
    [value] =>
    [checked] =>
    [attributes] =>
    [label] =>
    )
    -->
    Wird das so auf diese Art nicht funktionieren?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •