Element in Formular bei Auswahl bestimmter Selektions-Einträge ausblenden
am 14.10.2007 - 21:39 Uhr in
Der Titel verrät eigentlich schon mein Anliegen.
Während der Modulentwicklung bin ich auf ein Problem gestoßen:
Aus einem Menü heraus wird drupal_get_form über ein callback angesteuert:
$items[] = array('path' => 'meinModul/Untereintrag/add',
'title' => t('add entry'),
'callback' => 'drupal_get_form',
'callback arguments' => 'meinModul_handle_entries',
'type' => MENU_CALLBACK);
Die in den Argumenten verwendete Funktion meinModul_handle_entries beinhaltet u.A. die Daten für ein Formular:
$form['fields']['title'] = array('#type' => 'textfield',
'#title' => t('title'),
'#size' => 60,
'#maxlength' => 128,
'#required' => TRUE);
$form['fields']['cat'] = array('#type' => 'select',
'#title' => t('category'),
'#default_value' => $default_cat,
'#options' => $defined_cats);
$form['fields']['user'] = array('#type' => 'select',
'#title' => t('Users'),
'#options' => $defined_users);
Das sollte verständlich sein.
Es geht um die Eingabe eines Eintrags, dem Titel, Kategorie und ein beliebiger User zugeordnet werden.
$default-/ $defined-Werte bzw. Arrays werden zuvor aus DB ausgelesen bzw. gesetzt.
Auch die Namen der Kategorien werden also aus der Datenbank entnommen ($defined_cats), eine weitere Spalte in der Datenbank beinhaltet einen Wert, der kennzeichnet, ob dieser Kategorie ein User zugeordnet werden muss. Bei Auswahl einer Kategorie aus dem Selektions-Menü gilt also je nach Eintrag in der DB entweder true oder false bzgl. User-Zuordnung.
Für den Fall "false" sollte das Selektions-Menü "Users" deaktiviert sein, anderenfalls aktiviert.
Grundsätzlich bietet sich eine Lösung über Javascript und DHTML an, aber wie ließe sich dies innerhalb der drupal-Funktion (meinModul_handle_entries) bewerkstelligen?
Ich bin für Lösungsvorschläge sehr dankbar!
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 21 Stunden 58 Minuten
vor 2 Tagen 18 Stunden
vor 2 Tagen 21 Stunden
vor 2 Tagen 21 Stunden
vor 2 Tagen 22 Stunden
vor 2 Tagen 22 Stunden
vor 2 Tagen 22 Stunden
vor 3 Tagen 13 Stunden
vor 4 Tagen 21 Stunden
vor 5 Tagen 21 Stunden