Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs

Auswertung von HTML Formularen mit ASP

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:

Textfeld

Erlaubt dem User Text einzugeben

<INPUT TYPE="Text" NAME="TextName" VALUE="Wert1"> 

Passwortfeld

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">

Verborgenes Feld

In diesem Feld ist der Text nicht sichtbar oder änderbar, der Wert wird mit dem Formular geschickt

<INPUT TYPE="Hidden" NAME="HiddenName" VALUE="Wert2">

Checkbox

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>

Radio-Button

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>

Button (Knopf)

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">

Bild Knopf / Image Button

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">

Listenauswahl (Dropdown Box)

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>

Mehrfachliste (Multiple 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>

Senden Knopf / Submit Button

Durch Drücken dieses Knopfes wird das Formular abgesendet.

<INPUT TYPE="Submit" NAME="SubmitName" VALUE="Absenden">

Zurücksetzen Knopf / Reset Button

Das Drücken dieses Knopfes setzt das Formular in den Ursprungszustand zurück, und löscht ihre Eingaben.

<INPUT TYPE="Reset" VALUE="Zurücksetzen">

Auswerten eines abgesendeten Formulares

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.

Auswertung nach GET Übermittlung

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").Count
Danach 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)
Next
Diese 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.

Auswertung nach POST Übermittlung

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

Verwandte Artikel

Ü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.