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

Steffen's Avatar

Steffen

19 Nov, 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 20 Nov, 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

Formatting help / Preview (switch to plain text) No formatting (switch to Markdown)

Attaching KB article:

»

Attached Files

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