Selectbox in drupal schreiben
am 12.09.2012 - 07:45 Uhr in
Hallo Drupalfreunde,
danke erstmal, dass ihr euch diesen Beitrag anschaut :-) . Ich schreibe momentan zur übung ein kleines Modul und bin auch soweit mit dem gröbsten fertig. Das Problem was ich jetzt habe
ist, dass ich eine datums selectbox machen möchte.
Ich habe es so versucht:
<?php
function user_interface_output() {
$output = '<html>';
$output .= '<body>';
$output .= '<form action="#" method="post">';
$output .= 'Datum:';
$output .= '<select name="tag" style="border: thin solid #777777">
<option>*</option>';
for ($i = 1; $i <= 9; $i++) {
if(@$_POST['tag'] == "0".$i){ $selected = "selected='yes'"; } else { $selected="";}
$output .= "<option $selected>0$i</option>";
$output .= "<option>0".$i."</option>";
}
for ($i = 10; $i <= 31; $i++) {
if(@$_POST['tag'] == $i){ $selected = "selected='yes'"; } else { $selected="";}
$output .= "<option $selected>$i</option>";
}
return $output;
}
function user_interface_user() {
$input =user_interface_output();
echo $input;
?>Die checkbox mit den einzelnen Tagen kommt auch zum vorschein doch leider "zerreißt" er mir die Seite, sie wird weiß und das template wird nicht mehr richtig angezeigt.
Gibt es vllt eine andere Möglichkeit wie ich dieses Problem löse?
Vielen dank für eure Antwort :-)
- Anmelden oder Registrieren um Kommentare zu schreiben

Du solltest die Forms-API von
am 12.09.2012 - 08:47 Uhr
Du solltest die Forms-API von Drupal benutzen um Formulare im Modul zu erstellen. Sieh Dir dazu mal diese Seite an.
Beste Grüße
Werner
zwei Dinge fallen mir bei
am 12.09.2012 - 08:49 Uhr
zwei Dinge fallen mir bei deinem Code auf:
Warum diese zwei Zeilen:
$output = '<html>';$output .= '<body>';
und der Form-Tag wird nicht geschlossen.
Gruß
Berthold
Um das von torfnase mal zu
am 12.09.2012 - 08:56 Uhr
Um das von torfnase mal zu ergänzen:
Den HTML-Körper übernimmt Drupal, du musst nur den HTML-Code rein klimpern, den du ausgeben willst.
Und am Ende darfst du nicht "echo $output;" machen, sondern musst "return $output;" verwenden, dann kümmert sich Drupal um den restlichen HTML-Kram.
Und wie Werner sagte: Form API verwenden, das macht das alles wesentlich einfacher.
Du solltest dich erstmal
am 12.09.2012 - 09:23 Uhr
Du solltest dich erstmal generell mit Drupal und der Funktionsweise beschäftigen, um verstehen zu können wie Drupal Formulare bereit stellt (Form API). Hierzu solltest Du Dir am Besten ein Buch zulegen und dich erstmal in die Entwicklung von Modulen einlesen. Dann bekommst Du einen entscheidenden Überlick bzgl. der Funktionsweisen.
Buchtips findest Du auch hier: http://www.drupalcenter.de/handbuch/buecherecke
Super danke!
am 12.09.2012 - 09:28 Uhr
Super danke! Ich benutzte jetzt die date form von drupal. Hatte nicht gewusst, dass es sowas gibt!! Najach lesen bildet ungemein ;-) .
Jetzt habe ich aber noch eine Frage: Wenn ich nun ein Datum angebe und auf absenden drücke sollen natürlich immer unterschiedliche Ergebnise angezeigt werden (diese werden aus der Datenbank abgefragt), diese ergebnisse sollen aber auf der gleichen Seite angezeigt werden. Funktioniert dies auch über $_POST[] ?
Du könntest das Formular per
am 12.09.2012 - 09:42 Uhr
Du könntest das Formular per rebuild neu laden und in der Form-Funktion die Daten aus dem formstate nehmen.
Aber dafür solltest du dich erstmal gründlich in die Form API einlesen.
uff
am 12.09.2012 - 09:58 Uhr
Gut ich hab ja eine submit funktion wo cih die werte verarbeiteten kann. Wie würde ich, wenn ich das dort machen die daten auslesen? wie werden die werte übergeben?