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

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

Auswertung von HTML Formularen mit ASP

Geschrieben von: Christian Koller
Kategorie: ASP Grundlagen

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.

Verwandte Artikel

Übergeben von Informationen von einer ASP-Seite zur nächsten
Überprüfen von HTML-Formularen mit ASP
AutoCompletion für Web Formulare
Benutzerverwaltung leicht gemacht: Teil 1
Keine gefakten Bestellungen mehr!
Session Variablen - Verwendung und Stolpersteine
Sonderzeichen für Forms decodieren
Strukturierter Aufbau in der ASP-Programmierung
Uploaden einer beliebigen Datei in eine Datenbank

Wenn Sie jetzt Fragen haben...

Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten.

Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.

 

Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

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