Formulare
Irgendwann werdet ihr auch Formulare brauchen, oder zumindest bei Scrips mit
denen arbeiten, und deswegen solltet ihr auch da drüber bescheid wissen. Also
ein Formular kann folgende Elemente beinhalten:
Textfeld: | |
Textarea: | |
Radio-Button: | |
Checkbox: | |
Drop-Down Feld: | |
Schaltfläche: |
Also das Grundelement eines Formulars ist natürlich einmal der Tag:
<form></form>
Dieser zeigt an, dass ein Formular beginnt und alle Elemente die dazwischen liegen, zu dem Formular gehören. Natürlich hat form mehrere attribute die es genauer beschreiben:
action= | Aktion, was soll ausgeführt werden wenn der Submit Button gedrückt wird (zB. mailto:mail@peilosistas.org oder form.php) |
method= | Method kann entweder den Wert POST oder GET übernehmen. Genaueres dazu lest ihr weiter unten. |
enctype= | enctype gibt den MIME-Type (also den Typ der mit dem Formular mitgeschichten Daten an [zB. text/plain für nur Text oder, multipart/form-data wenn das Formular andere Daten als Text enthält. Eine Liste der MIME-Typen findet ihr hier |
Was genau ist nun dieses GET und dieses POST und wo liegt da der Unterschied?
Es handelt sich hierbei um die Methode wie die Daten der Mail weitergegeben werden sollen. GET überträgt die Daten direkt in der Adresszeile. Da ihr den Formularfeldern Namen übergebt, werden diese Informationen nach der URL, durch ein Fragezeichen getrennt angegeben.. Man kann es sich so vorstellen dass in der URL Folgendes stehen könnte:
http://www.peilosistas.org/formular.htm?name=Peilo&nachname=Sista
Diese Übergabe ist zwar in manchen Bereichen sehr nützlich hat aber den Nachteil dass wenn ihr vertrauliche Daten weitergebt, jeder der hinter euch steht, das lesen kann. Weiters können sie als Favoriten gespeichert werden, und (und das ist wohl der Hauptnachteil) nur maximal 2 Bytes enthalten! (also beschränkte Zeichenanzahl). (bei dem dynamischen PHP-include könnt ihr euch eine gute Anwendung dieser Methode angucken)
Post hingegen ist da etwas diskreter... die Informationen werden im Hintergrund weitergegeben. Man kann sie nur im Formular selbst ändern, jedoch nicht irgendwie über die URL, und die Länge ist dabei beinahe irrelevant. Diese Methoden sind dann später im PHP-Teil ziemlich wichtig.
Weitere Formularelemente sind:
<input type="beliebigertyp" name="name" size="zahl" maxlength="zahl"
value="wert">
<textarea name="name" cols="zahl" rows="zahl" value="wert">
<select><option>Inhalt 1</option><option>Inhalt 2</option></select>
<textarea name="name" cols="zahl" rows="zahl" value="wert">
<select><option>Inhalt 1</option><option>Inhalt 2</option></select>
Also input ist eigentlich das Supermega-Ding überhaupt alleine durch Änderung des typen könnt ihr aus einem Textfeld aufeinmal einen Radiobutton machen etc. Folgende Möglichkeiten habt ihr bei dem typ des input Feldes:
text | Textfeld |
radio | Radio-Button |
checkbox | checkbox |
password | Passwortfeld (Zeigt nur Sternchen an) |
submit | Submitbutton |
reset | Resetbutton (zurücksetzen) |
file | Textfeld mit Durchsuchen(Browse) Button |
hidden | Verstecktes Textfeld |
button | Normaler Button (noch ohne Funktion) |
image | Macht mit der angabe src aus einem Bild einen klickbaren Button |
Im großen und ganzen könnte ein Formular nun so aussehen:
<form name="formular" method="post" action="mailto:mail@peilosistas.org" enctype="text/plain">
Name: <input name="name" type="text" id="name" size="10"><br>
email: <input name="email" type="text" id="email" size="10"><br>
Kommentar: <textarea name="textfeld" cols="10" rows="2" id="textfeld"></textarea><br>
<input name="submit" type="submit" id="submit" value="Senden">
<input name="reset" type="reset" id="reset" value="Zurücksetzen">
</form>
Name: <input name="name" type="text" id="name" size="10"><br>
email: <input name="email" type="text" id="email" size="10"><br>
Kommentar: <textarea name="textfeld" cols="10" rows="2" id="textfeld"></textarea><br>
<input name="submit" type="submit" id="submit" value="Senden">
<input name="reset" type="reset" id="reset" value="Zurücksetzen">
</form>
Diese Form mit mailto funktioniert allerdings nur, wenn ihr auch einen E-Mail Client installiert habt (z.B. Mozilla Thunderbird, oder Outlook oder Ähnliches).
Versucht das mal und ändert die email auf eure eigene. Ihr müsstet dann eine Mail erhalten mit den Informationen.