Verwendung: Wert eines Select-Feldes als Variable für anderes Feld nutzen

Steffen's Avatar

Steffen

Nov 19, 2024 @ 02:39 PM

Produkt: Custom Elements Contao

Hallo,

ich möchte ein Frontendmodul erstellen, welches mir Mitglieder einer bestimmten Gruppe anzeigt.
Dazu soll es ein Select-Feld geben, dass die Mitgliedergruppen anzeigt. Das funktioniert soweit.

// Gruppenauswahl
        't_gruppe' => array(
            'label' => array(
                'de' => array('Gruppe', ''),
            ),
            'inputType' => 'select',
            'options_callback' => function () {
                $options = array();
                $data = \Database::getInstance()->execute("SELECT id, name FROM tl_member_group ORDER BY id");
                while ($data->next())
                {
                    $options[$data->id] = $data->name . ' (' . $data->id . ')';
                }
                return $options;
            },
            'eval' => array(
                'tl_class' => 'w50',
                'includeBlankOption' => true,
            ),
        ),

Kann ich die ausgewählte Gruppe aus $options irgendwie weiterverwenden?

In einem weitern Select-Feld möchte ich dann alle Mitglieder der vorher ausgewählten Mitglieder-Gruppe ausgeben lassen.

't_mitglied' => array(
                    'label' => array(
                        'de' => array('Mitglied', ''),
                    ),
                    'inputType' => 'select',
                    'options_callback' => function () {
                        $options = array();
                        $mitglieder = array();
                        
                        $data = \Database::getInstance()->execute("SELECT id, lastname, firstname, groups FROM tl_member");
                        
                        while ($data->next())
                        {
                            $mitglieder[] = array('id' => $data->id, 'firstname' => $data->firstname, 'lastname' => $data->lastname, 'groups' => implode(",", deserialize($data->groups)));
                        }
                        
                        foreach ($mitglieder as $mitglied) {
                            if (str_contains($mitglied['groups'], '1')) {
                                $options[] = $mitglied['firstname'] . ' ' . $mitglied['lastname'];
                            }
                        }
                        
                        return $options;
                    },
                    'eval' => array(
                        'tl_class' => 'clr',
                        'includeBlankOption' => true,
                    ),
                ),

Bei der Abfrage if (str_contains($mitglied['groups'], '1')) soll die "1" durch die vorher ausgewählte id der Mitgliedergruppen ersetzt werden.

Steffen

  1. Support Staff 1 Posted by RockSolid Theme... on Nov 20, 2024 @ 03:19 PM

    RockSolid Themes's Avatar

    Vielen Dank für Ihre Nachricht.

    Wir haben zu Ihrer Frage bereits Informationen bereitgestellt und dürfen Sie daher auf folgenden Inhalt verweisen: https://help.rocksolidthemes.com/discussions/contao/1647

Reply to this discussion

Internal reply

        No formatting (switch to Markdown)

          You can attach files up to 10MB

          If you don't have an account yet, we need to confirm you're human and not a machine trying to post spam.

            Keyboard shortcuts

            Generic

            ? Show this help
            ESC Blurs the current field

            Comment Form

            r Focus the comment reply box
            ^ + ↩ Submit the comment

            You can use Command ⌘ instead of Control ^ on Mac