Form API mit einem Array als #options
Eingetragen von drupalcentersven (44)
am 05.02.2011 - 07:17 Uhr in
am 05.02.2011 - 07:17 Uhr in
Ich habe einen Array:
$options = array ('Schmalz', 'Suppe', 'Kohl', 'Stuhl', 'Schmatzen');
$options_select = array();
foreach ($options as $value) {
$options_select[$value] = $value;
}
Und dann weiter unten:
$form['zutaten'] = array(
'#type' => 'select',
'#options' => $options_select,
);
Auf der Seite wird nun das Auswahlfeld angezeigt, aber keine Optionen zum auswählen.
Der HTML Code sagt:
<select name="zutaten" class="form-select" id="edit-zutaten" ></select>
Zudem wirft mir Drupal eine Fehlermeldung aus:
warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\sitename\includes\form.inc on line 1434.
Wie macht mans richtig?
- Anmelden oder Registrieren um Kommentare zu schreiben
Es war wohl ein
am 05.02.2011 - 09:43 Uhr
Es war wohl ein Fokus-Problem. Der Array war nicht in der Funktion verfügbar. Jetzt funktioniert es.
ABER:
Der HTML-Output ist alles andere als hübsch. Die Optionen sind in eine ewig langen Zeile ohne Line Break.
#suffix => '\n' funktioniert nicht. Warum nicht?
Hier gibt es eine gute
am 05.02.2011 - 10:45 Uhr
Hier gibt es eine gute Anleitung:
http://drupal.org/node/751826
Die Ausgabe der options besser so:
<?php
$options = array('1' => t('Schmalz'), '0' => t('Suppe'));
$form['zutaten'] = array(
'#type' => 'select',
'#options' => $options,
);
?>
-----------
Luca Curella
Kooperative Netze - Berlin
Was meinst du mit Optionen?
am 05.02.2011 - 10:45 Uhr
Was meinst du mit Optionen? Formularelemente? Wenn ja, normal. Optionen in einer Auswahlliste auch normal.
Gelöste Forenbeiträge mit [gelöst] im Titel ergänzen
Das Verhältnis anderen zu helfen muss höher sein, als von anderen Hilfe zu erfragen/erwarten.
Ja, das waren Optionen in der
am 06.02.2011 - 18:55 Uhr
Ja, das waren Optionen in der Auswahlliste.
Für die Übersichtlichkeit macht das bestimmt Sinn, aber nur aus Interesse:
Kann man Zeilenumbrüche und Tabstops für die HTML Ausgabe über die Form API manuell erzwingen? Ja oder nein?
Danke für die Hilfe soweit.