Formulare in HTML
1. Definition eines Formulars
Ein HTML-Formular wird durch das Tag <FORM> eingeleitet. Innerhalb dieses Tags wird die auszuführende Aktion und die Art der Informationsübertragung angegeben. Dies geschieht durch die Parameter ACTION und METHOD.
Als auszuführende Aktion kann im Prinzip ein beliebiger URL angegeben werden. Dieser wird dann aufgerufen, sobald der Anwender den Submit-Button (mehr dazu später) betätigt. In der Regel macht jedoch nur die Angabe eines CGI-Skripts oder einer Mailadresse Sinn.
Als Methode sind zwei verschiedene Werte möglich: POST und GET, wobei die Get-Methode der Standardwert ist, wenn keine Methode angegeben wurde. Bei der Get-Methode werde die Daten an den URL des CGI-Skripts angehängt, bei der Postmethode dagegen werden die Daten in den Formularfeldern als zusätzliches IP-Packet übertragen.
Ein Formular muß immer durch ein
korrespondierendes </FORM>
Tag abgeschlossen werden. Zwischen diesen beiden Tags können
alle normalen HTML-Befehle verwendet werden und außerdem
die speziellen Befehle, um Eingabefelder zu definieren.
Beispiel:
<!-- Definition eines Formulars
-->
<FORM ACTION="mailto:eberl@ip-service.com"
METHOD="post">
...
</FORM>
2. Die verschiedenen Eingabefelder
2.0 Ausführungsbuttons:
Ausführungsbuttons sind eigentlich
keine richtigen Eingabefelder, stehen aber dennoch am Anfang,
da sie eine extrem wichtige Aufgabe erfüllen. Sie ermöglichen
es erst, ein mehrzeiliges Formular zum Server zu schicken. Es
gibt zwei verschiedene Ausführungsbuttons: den sogenannten
Submit-Button und den Reset-Button. Wird der erst genannte betätigt,
dann wird das Formular übertragen. Klickt man auf einen Reset-Button,
werden alle Eingabefelder auf ihren ursprünglichen Wert zurück
gesetzt.
Beispiel: siehe Beispiel zu 2.1
2.1 Texteingabefelder:
Textfelder werden durch die Angabe von <INPUT> innerhalb des Formulars definiert. Steht dieses Tag außerhalb eines Formulars wird es ignoriert.
Über den Paramter TYPE kann die Art der in diesem Textfeld erlaubten Daten angegeben werden. Mögliche Werte sind:
Wert | Art der Daten |
TEXT | beliebig (wird im allgemeinen nicht angegeben, da es sich um den Standardwert handelt). |
INT | es dürfen nur ganze Zahlen eingegeben werden (erlaubte Zeichen: "0-9"). Durch die Angabe von MIN=xx und MAX=xx kann der erlaubte Wertebereich zusätzlich eingeschränkt werden. |
FLOAT | es dürfen nur Komma-Zahlen angegeben werden (erlaubte Zeichen: "0-9",".") |
URL | es dürfen nur URL's eingegeben werden (z.B. "http://ip-service.com" oder "mailto:xy@unknown.com") |
DATE | es dürfen nur gültige Daten in englischer Schreibweise eingegeben werden (z.B. 07-Nov-97) |
PASSWORD | wie TEXT, allerdings werden die Eingaben entweder nicht, oder als "*" ausgegeben. |
Anmerkung: von vielen Webbrowsern (z.B.
Netscape) werden alle Typen, außer TEXT
und PASSWORD,
nicht korrekt ausgewertet.
Die Vorbelegung des Textfeldes kann durch den Parameter VALUE bestimmt werden. Standardmäßig sind die Textfelder leer.
Der Name des Textfeldes wird durch den Parameter NAME festgelegt. Gültig sind beliebige Zeichenketten, allerdings sollte auf Leerzeichen und Sonderzeichen verzichtet werden.
Die Länge des Textfeldes in Zeichen
wird kann mit dem Parameter SIZE
angegeben werden. Durch die zusätzliche Angabe von MAXLENGTH
kann die Eingabe beschränkt werden. Wird auf diesen Paramter
verzichtet können unendlich viele Zeichen eingegeben werden.
Beispiel:
<HTML><HEAD><TITLE>Formular-Test</TITLE></HEAD>
<BODY>
<FORM ACTION="http://www.test.com/calc.pl"
METHOD="post">
<DL>
<DT>Ergebnis senden an (Email-Adresse)</DT>
<DD><INPUT TYPE="text"
NAME="sendto" SIZE=80 MAXLENGTH="80"></DD>
<DT>1. Operand</DT>
<DD><INPUT TYPE="float"
NAME="op1" SIZE=10 MAXLENGTH=15></DD>
<DT>Operator</DT>
<DD><INPUT TYPE="text"
NAME="optr" VALUE="+" SIZE=1 MAXLENGTH=1></DD>
<DT>2. Operand</DT>
<DD><INPUT TYPE="float"
NAME="op2" SIZE=10 MAXLENGTH=15></DD>
</DL>
<HR>
<INPUT TYPE="submit"
VALUE="los geht's!!"><BR>
<INPUT TYPE="reset"
VALUE="war wohl nix">
</FORM>
</BODY>
</HTML>
2.2 mehrzeilige Eingabefelder:
Mehrzeilige Eingabefelder dienen dazu, längere Texte, z.B. Kommentare und Nachrichten aufzunehmen. Sie werden von dem Tag <TEXTAREA> eingeleitet. In den Parametern COLS und ROWS können sie die Breite und Höhe des Eingabefeldes in Zeichen angeben. Abgeschlossen wird das Textfeld durch das Tag </TEXTAREA>. Alles was sich zwischen den beiden Tags befindet wird als Vorbelegung für das Textfeld interpretiert. Es ist also wichtig, das sie das abschließende Tag nicht vergessen. Sonst wird der Rest ihres HTML-Codes in das Textfeld eingefügt und nicht als Seite interpretiert.
Zusätzlich können sie auch
noch durch die Angabe von WRAP
den Zeilenumbruch im Textfeld steuern. Sie können hier die
Werte VIRTUAL,
PHYSICAL
und OFF
angeben. VIRTUAL
ermöglicht den automatischen Umbruch, es werden jedoch keine
Zeilenumbruchszeichen übertragen. PHYSICAL
erzeugt praktisch ein identisches Verhalten wie VIRTUAL,
jedoch werden die Umbruchszeichen mit übertragen. Durch die
Eingabe von OFF
wird der automatische Zeilenumbruch abgeschaltet. Dies ist die
Voreinstellung.
Beispiel:
...
<FORM ACTION="mailto:xy@unknown.com">
Hier können sie einen Text
eingeben:<P>
<TEXTAREA NAME="long_text"
WRAP="physical" COLS=40 ROWS=10>
ein 40 Zeichen breites und 10 Zeichen
hohes Textfeld mit diesem Text als Vorbelegung und automatischen
Zeilenumbruch.
</TEXTAREA>
<INPUT TYPE="submit"
VALUE="los geht's!!">
</FORM>
...
2.3 Auswahllisten:
In Auswahllisten können sie dem Anwender eine feste Liste von Einträgen anbieten, aus der der Benutzer einen oder mehrere auswählen kann. Eine Auswahlliste wird immer von dem Tag <SELECT> eingeleitet und mit dem Tag </SELECT> abgeschlossen. Zwischen diesen Tags befinden sich die Einträge, die jeweils mit <OPTION> eingeleitet werden. Ein schon bei der Anzeige der Liste selektierter Eintrag wird durch <OPTION SELECTED> eingeleitet.
Die Anzahl der angezeigten Listenelemente
kann durch den Parameter SIZE
in Tag <SELECT>
bestimmt werden. Soll Mehrfachauswahl zugelassen werden, dann
muß zusätzlich noch MULTIPLE
angegeben werden.
Beispiel:
<FORM ACTION="mailto:holy_gral@camelot.com">
<H2>Wählen sie ihren
Favoriten aus:</H2>
<SELECT NAME="top" SIZE=3>
<OPTION> Heino
<OPTION SELECTED> Michael Jackson
<OPTION> Tom Waits
<OPTION> Nina Hagen
<OPTION> Marianne Rosenberg
</SELECT>
<H2>Was fanden sie an diesem
Kurs toll?</H2>
<SELECT NAME="best"
SIZE=3 MULTIPLE>
<OPTION> gute didaktische Aufbreitung
<OPTION> hervorragendes Skript
<OPTION> ihre(n) Nachbarn/in
<OPTION> nichts.
</SELECT>
<INPUT TYPE="submit"
VALUE="los geht's!!">
</FROM>
2.4 Check- und Radiobuttons:
Radiobutton sind eine Gruppe von beschrifteten Buttons, aus denen der Anwender immer nur einen markieren kann. Im Gegensatz dazu können aus einer Gruppe von Checkbuttons immer mehrere (oder keiner) markiert sein.
Check und Radiobuttons bilden immer
Gruppen, die durch den gleichen Namen der verschiedenen Felder
gekennzeichnet sind. In diesen Gruppen gelten dann die oben genannten
Bedingungen. Von der Notation her gleichen die Radio- und Checkbuttons
den einzeiligen Textfeldern, als Typ wird hier allerdings CHECKBOX
oder RADIO
angegeben. Der Parameter VALUE
bestimmt in diesem Fall nicht die Voreinstellung, sondern den
internen Wert des Buttons.
Beispiel 1:
...
Geben sie die Zahlungsweise an:<P>
<INPUT TYPE="radio"
NAME="pay_method" VALUE="invoice"> Bankeinzug
<INPUT TYPE="radio"
NAME="pay_method" VALUE="credit_card">
Kreditkarte (bitte korrekten Typ angeben)
<INPUT TYPE="radio"
NAME="card_typ" VALUE="visa"> Visa
<INPUT TYPE="radio"
NAME="card_typ" VALUE="master"> Mastercard
<INPUT TYPE="radio"
NAME="card_typ" VALUE="american"> American
Express
...
Beispiel 2:
...
Wählen sie die Zutaten ihrer
Pizza:<P>
<INPUT TYPE="checkbox"
NAME="zutat" VALUE="salami">Salami
<INPUT TYPE="checkbox"
NAME="zutat" VALUE="sardellen">Sardellen
<INPUT TYPE="checkbox"
NAME="zutat" VALUE="pilze">Pilze
...
2.5 anklickbare Bilder:
Anklickbare Bilder stellen dieselbe
Funktionalität bereit, wie ein Submit-Button, d.h. das Formuar
wird bei der Betätigung übertragen, jedoch können
sie zusätzlich auswerten auf welche Stelle im Bild der Anwender
geklickt hat. Dies ist vor allem nützlich, um eine Art Menüleiste
zu definieren, bei der festgelegt wird, was mit den Informationen
aus dem Formular zu geschehen hat. Im allgemeinen wird dieser
Typ jedoch nur dazu verwendet, einen besonderen Submit-Button
zu realisieren.
Beispiel:
...
<INPUT TYPE="image"
SRC="http://ip-service.com/IP/ip1.gif NAME="bild">
...
2.6 versteckte Informationen:
Durch versteckte Informationen können
Informationen übermittelt werden, die für den Anwender
nicht direkt ersichtlich sind. Dies ist dennoch keine Möglichkeit,
den Benutzer auszuspionieren, denn es kann sich nur um statische
Information handeln, die direkt im HTML-Code festgelegt ist.
Beispiel:
...
<INPUT TYPE="hidden"
NAME="name_der_seite" VALUE="xyz1.html">
...