Geschrieben von: Christian Koller
Kategorie: ASP Grundlagen
This printed page brought to you by AlphaSierraPapa
Sicherlich kennen sie die Eingabeformulare in HTML Seiten. Sie werden zum Beispiel benutzt um Registrierungsdaten einzugeben, oder um in einer Suchmaschine den Suchbegriff festzulegen.
Wie sieht nun der HTML Code eines Formulares prinzipiell aus? Um ein Formular zu kennzeichnen bedarf es des <FORM> Tags.
Die wichtigsten Parameter des <FORM> Tags sind wie folgt:
ACTION | Internet-Adresse, an welche der Inhalt des Formulars geschickt wird |
METHOD | Methode der Datenübertragung (GET oder POST) |
ENCTYPE | Codierungsart der Daten |
Somit könnte ein Formular wie folgt eingeleitet werden:
<FORM ACTION="http://www.aspgerman.com" METHOD="Get">
Zwischen dem <FORM> und dem </FORM> Tag des Formulars stehen die HTML Tags der Formularelemente:
Erlaubt dem User Text einzugeben
<INPUT TYPE="Text" NAME="TextName" VALUE="Wert1">
Das Passwortfeld sieht im Prinzip gleich aus wie das Textfeld, hier wird aber der Text beim Eintippen unkenntlich gemacht und als *** angezeigt
<INPUT TYPE="Password" NAME="PasswordName" VALUE="Wert7">
In diesem Feld ist der Text nicht sichtbar oder änderbar, der Wert wird mit dem Formular geschickt
<INPUT TYPE="Hidden" NAME="HiddenName" VALUE="Wert2">
Das ist ein Feld zum Ankreuzen. Der Parameter "CHECKED" gibt an, daß das Feld standardmäßig angekreuzt ist. Diese Felder können, müssen aber nicht markiert werden.
<INPUT TYPE="Checkbox" NAME="CheckboxName" VALUE="Wert5"> <INPUT TYPE="Checkbox" NAME="CheckboxName" VALUE="Wert6" CHECKED>
Ein Feld zum Auswählen, bei mehreren Radio-Knöpfen mit selben Namen kann immer nur einer ausgewählt werden. Der Parameter "CHECKED" gibt an, daß das Feld standardmäßig ausgewählt ist.
<INPUT TYPE="Radio" NAME="RadioName" VALUE="Wert3"> <INPUT TYPE="Radio" NAME="RadioName" VALUE="Wert4" CHECKED>
Dieser Button kann gedrückt werden, hat aber nur im Zusammenspiel mit client-side JavaScript/VBScript eine Funktion. Der Wert wird nicht mit dem Formular abgesendet.
<INPUT TYPE="Button" NAME="ButtonName" VALUE="Wert8">
Der Image Button kann statt dem Submit Knopf verwendet werden. Beim Klicken auf das Bild wird das Formular abgesendet und die X- und Y-Koordinaten der Mouseposition werden auch mitgeschickt (als Werte von ImageName.x und ImageName.y). Das Bild des Knopfes selbst wird von der Internetadresse bezogen, die im Parameter SRC angegeben ist. Der Parameter Border gibt die Stärke der Bildumrandung vor.
<INPUT TYPE="Image" NAME="ImageName" SRC="http://www.aspgerman.com/button1.jpg" BORDER="0">
Bei einer Listenauswahl kann der User einen Eintrag aus der Liste auswählen. Der sichtbare Wert jedes Listeneintrags wird von den <OPTION> und </OPTION> Tags begrenzt. Der Value Parameter in den <OPTION> Tags enthält den Wert, der bei Auswahl des Eintrags mit dem Formular übermittelt wird. Der Size Parameter im <SELECT> Tag gibt an, wieviele Einträge gleichzeitig sichtbar sind.
<SELECT NAME="SelectName" SIZE="1"> <OPTION VALUE="Select1">Auswahl 1</OPTION> <OPTION VALUE="Select2">Auswahl 2</OPTION> <OPTION VALUE="Select3">Auswahl 3</OPTION> </SELECT>
Eine Mehrfachliste erlaubt dem User mehrere Listeneinträge auszuwählen, dabei muß bei jeder zusätzlichen Auswahl die "Shift" Taste gedrückt sein. Ein Mehrfachlisteneintrag wird durch den Parameter MULTIPLE im <SELECT> Tag angezeigt. Ansonsten verhält sich die Mehrfachlsite so wie die Listenauswahl.
<SELECT NAME="SelectName" SIZE="2" MULTIPLE> <OPTION VALUE="Select1">Auswahl 1</OPTION> <OPTION VALUE="Select2">Auswahl 2</OPTION> <OPTION VALUE="Select3">Auswahl 3</OPTION> </SELECT>
Durch Drücken dieses Knopfes wird das Formular abgesendet.
<INPUT TYPE="Submit" NAME="SubmitName" VALUE="Absenden">
Das Drücken dieses Knopfes setzt das Formular in den Ursprungszustand zurück, und löscht ihre Eingaben.
<INPUT TYPE="Reset" VALUE="Zurücksetzen">
Sehen wir uns einmal folgendes HTML Formular an:
Text1:
Radio 1
Radio 2
Checkbox 1
Checkbox 2
Es hat diesen HTML Code:
<FORM ACTION="empfang.asp" METHOD="GET"> Text1: <INPUT TYPE="Text" NAME="Text1" VALUE="Wert1"> <BR> <INPUT TYPE="Hidden" NAME="Verborgen" VALUE="Wert2"> <BR> <INPUT TYPE="Radio" NAME="RadioKnopf" VALUE="Radio1">Radio 1<BR> <INPUT TYPE="Radio" NAME="RadioKnopf" VALUE="Radio2" CHECKED>Radio 2<BR> <BR> <INPUT TYPE="Checkbox" NAME="Checkbox" VALUE="Wert5">Checkbox 1<BR> <INPUT TYPE="Checkbox" NAME="Checkbox" VALUE="Wert6" CHECKED> Checkbox 2<BR> <BR> <INPUT TYPE="Submit" NAME="Abschicken" VALUE="Absenden"> <INPUT TYPE="Reset" VALUE="Zurücksetzen"> </FORM>
Wenn sie dieses Formular absenden wird es an die ASP Seite empfang.asp geschickt. Da der Parameter METHOD auf GET gesetzt ist, werden die Daten des Formulars im sogenannten QueryString der URL übertragen. Daher könnte die URL beim Absenden des Formulars wie folgt aussehen:
http://www.aspgerman.com/empfang.asp?Text1=Wert1&HiddenName=Wert2&RadioName=Radio2&CheckboxName=Wert6&Abschicken=Absenden
Der Teil hinter dem Fragezeichen wird als QueryString bezeichnet und enthält die Daten in Form von FELDNAME=WERT Paaren. Die FELDNAME=WERT Paare werden mit & aneinandergereiht.
Wenn sie beide Checkboxen im vorhergehenden Formular ankreuzen, dann kommt der Feldname Checkbox5 zweimal vor, einmal mit dem Wert "Wert5", und einmal mit "Wert6".
Wie kann nun eine ASP Seite (empfang.asp) dieses abgeschickte Formular auswerten? ASP stellt über das ASP Request Object die sogennanten QueryString und Form Collection (Auflistung) zur Verfügung, in der alle Formulardaten enthalten sind. Wird das Formular mit der Method "POST" abgeschickt, dann kommt die Form Collection zur Anwendung, andernfalls die QueryString Collection.
Die Daten des vorhergehenden Formulares wurde nun mit der GET Methode übermittelt. Daher stehen die Daten in der QueryString Collection zur Verfügung. Den Wert eines Feldes bekommt man indem man den Wert der Collection ausliest:
StrText1 = Request.QueryString("Text1") StrVerborgen = Request.QueryString("Verborgen") StrRadio = Request.QueryString("RadioKnopf") StrAbschicken = Request.QueryString("Abschicken")Was macht man aber, wenn ein Feldname mehreren Werten zugeordnet sein kann, wie das beim Checkbox Feld names Checkbox der Fall sein kann? In diesem Fall prüft man zuerst mit der Count Eigenschaft wieviele Werte mit dem Feldname Checkbox übergeben wurden:
Anzahl = Request.QueryString("Checkbox").CountDanach liest man über die Item Collection des jeweiligen Feldes alle Werte aus, speichert es in einem Array oder wertet es sofort aus.
Dim arrCheck(2) For intI = 1 To Anzahl arrCheck(intI) = Request.QueryString("Checkbox").Item(intI) NextDiese Art des Auslesens mehrerer Werte für den selben Feldnamen wird natürlich auch bei der Mehrfachliste angewendet.
Achtung: Bei der Übermittlung mit der GET Methode können sie nur ungefähr zwischen 500 und 2000 Zeichen pro Formular übermitteln.
Wenn ein Formular mit der POST Method übermittelt wird, so ist kein QueryString zu sehen. Stattdessen werden alle Daten im sogenannten Rumpf (Body) des Seitenaufrufes zur Auswertungsseite gesendet.
Ein mit der Post Method übermitteltes Formular wertet man über die Form Collection des Request Objektes aus. Das Auslesen der Werte unseres Beispielformulares (METHOD geändert zu POST) könnte daher folgendermaßen geschehen:
Dim arrCheck(2) StrText1 = Request.Form("Text1") StrVerborgen = Request.Form("Verborgen") StrRadio = Request.Form("RadioKnopf") StrAbschicken = Request.Form("Abschicken") Anzahl = Request.Form("Checkbox").Count For intI = 1 To Anzahl arrCheck(intI) = Request.Form("Checkbox").Item(intI) Next
Da es für die Übermittlung nur die GET und POST METHOD gibt, bin ich somit am Ende der Ausführungen zur Auswertung von Formularen mittels ASP angelangt. Mit den in diesem Artikel präsentierten Grundlagen sind sie in der Lage, Formulare für ihre Website zu bauen, und erfolgreich mit ASP auszulesen.
This printed page brought to you by AlphaSierraPapa
Übergeben von Informationen von einer ASP-Seite zur nächsten
http:/www.aspheute.com/artikel/20000529.htm
Überprüfen von HTML-Formularen mit ASP
http:/www.aspheute.com/artikel/20000522.htm
AutoCompletion für Web Formulare
http:/www.aspheute.com/artikel/20001121.htm
Benutzerverwaltung leicht gemacht: Teil 1
http:/www.aspheute.com/artikel/20020429.htm
Keine gefakten Bestellungen mehr!
http:/www.aspheute.com/artikel/20010531.htm
Session Variablen - Verwendung und Stolpersteine
http:/www.aspheute.com/artikel/20000505.htm
Sonderzeichen für Forms decodieren
http:/www.aspheute.com/artikel/20010404.htm
Strukturierter Aufbau in der ASP-Programmierung
http:/www.aspheute.com/artikel/20011112.htm
Uploaden einer beliebigen Datei in eine Datenbank
http:/www.aspheute.com/artikel/20001030.htm
©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.