Eingabe-Formulare

Möchte man ein Formular entwickeln, in das der Benutzer Daten eingeben kann, so muss man folgendes tun:
  • Nach der Anweisung <BODY> schreibt man:
    	<FORM METHOD=POST ACTION="xyz.asp">
    
    wobei xyz.asp irgendein Programm auf dem Server ist, in welchem die eingegeben Daten weiter verarbeitet werden sollen. Das kann wieder dasselbe Programm sein oder auch weiteres Programm.
    (Außer POST gibt es noch die Methode GET. Ich beschreibe sie hier nicht, da ich selbst bei meinen Programm ganz auf sie verzichtet habe).

  • Dann folgen die Eingabefelder - z.B.:
    	<INPUT TYPE="TEXT" NAME="Vorname" MAXLENGTH=24 SIZE=16>
    
    NAME ist der Name des Eingabefeldes.
    MAXLENGTH ist die maximale Zahl der Zeichen, die eingegeben werden dürfen.
    SIZE bestimmt die Breite des Eingabefeldes innerhalb des Formulars.

    Mit einem weiteren Parameter (VALUE) kann man das Feld vorbesetzen. In diesem Beispiel wird man wohl das Feld mit einem bereits bekannten Wert besetzen:

    	VALUE=<%=Vorname%>
    
    wobei hier Vorname eine Variable ist, deren Wert man vorher aus einer Datenbank oder aus einem cookie geholt hat.
    Man beachte, dass hier eine Variable und auch ein Eingabefeld 'Vorname' heißen. Man hätte sie aber auch unterschiedlich benennen können.

  • Weiter braucht man ein Feld (einen Knopf), das man anklicken kann, damit die Daten zum Server gesandt werden:
    	<INPUT TYPE="SUBMIT" NAME=Submit VALUE="Eingabe fertig!">
    
    In dem Eingabeformular würde hier ein Knopf mit der Beschriftung "Eingabe fertig!" erscheinen. Sobald dieser Knopf angeklickt wird, werden alle Inhalte des Eingabeformulars an das Programm geschickt, das man oben in der Anweisung <FORM> angegeben hatte.

  • Weitere Input-Typen sollte man in einer HTML-Dokumentation nachlesen. Einen Typ möchte ich hier noch erwähnen, weil er mir nützlich erscheint, falls man einen Internet-Shop programmieren möchte: den Typ IMAGE. Durch diesen Typ kann man herausfinden, welches Bild der Benutzer angeklickt hat. Man kann sogar bestimmen, an welcher Stelle das Bild angeklickt wurde.
    Ein Beispiel:
    	<INPUT TYPE=IMAGE SRC="Hammer.gif" NAME=Hammer>
    	<INPUT TYPE=IMAGE SRC="Zange.gif" NAME=Zange>
    
    Im Folgeaufruf dieses Programmes erhält man für das angeklickte Bild den x und y-Wert, an welcher dieses Bild angeklickt wurde. Um rauszukriegen, welches Bild angeklickt wurde, muss man nur testen, für welches Bild einer dieser Werte größer als Null ist:
    if request.form("Hammer.x")>0 then
    	'der Kunde hat den Hammer angeklickt
    	'diesen Artikel in seinen Einkaufswagen stecken
    end if
    if request.form("Zange.x")>0 then
    	'der Kunde hat die Zange angeklickt
    end if
    
Ein Programm-Beispiel

Dem Benutzer wird ein Formular angezeigt, in das er seine Adresse eingeben kann. Bei einem zweiten Aufruf werden dem Benutzer die bisher eingegeben Daten angezeigt, so dass er sie korrigieren kann.
Zum Thema 'cookies' bitte das entsprechende Kapitel ansehen.
Im Kapitel 'Dialog-Steuerung' wird erklärt, wie man zum Beispiel weiß, ob es der Erstaufruf ist oder nicht.

<%
	'************ beim ersten Aufruf Daten aus dem Cookie holen
	if  Request.Cookies("Kunde").hasKeys then
		neu=false
		Vorname=Request.Cookies("Kunde")("Vorname") 
		Nachname=Request.Cookies("Kunde")("Nachname") 
		Strasse=Request.Cookies("Kunde")("Strasse")
		Ort=Request.Cookies("Kunde")("Ort") 
		PLZ=Request.Cookies("Kunde")("PLZ") 
	else
		neu=true
	end if	

	'************* beim Folgeaufruf  Daten aus den Formular-Feldern holen
	' Wie man erkennt, ob es der Erstaufruf oder ein Folgeaufruf ist,
	' siehe Kapitel "Dialogsteuerung"
	Vorname=Request.Form("Vorname")
	Nachname=Request.Form("Nachname")
	Strasse=Request.Form("Strasse")
	Ort=Request.Form("Ort")
	PLZ=Request.Form("PLZ")	

	'************** Schreiben des Cookie
	Response.Cookies("Kunde")("Vorname") = Vorname
	Response.Cookies("Kunde")("Nachname") = Nachname
	Response.Cookies("Kunde")("Strasse") = Strasse
	Response.Cookies("Kunde")("Ort") = Ort
	Response.Cookies("Kunde")("PLZ") = PLZ
	Response.Cookies("Kunde").Expires = #July 1, 2005#
%>
<HTML>
<HEAD>
<TITLE>ein Test</TITLE>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="Test.asp">
	<%if neu then%>
	Geben Sie bitte Ihre Daten ein!
	<%else%>
	Dies sind Ihre Daten – Sie können Sie ändern
	<% end if%>
<BR>Vorname:      <INPUT TYPE="TEXT" NAME="Vorname" VALUE="<%=Vorname%>" MAXLENGTH=24>
<BR>Nachname:     <INPUT TYPE="TEXT" NAME="Nachname" VALUE="<%=Nachname%>" MAXLENGTH=24>
<BR>Straße:       <INPUT TYPE="TEXT" NAME="Strasse" VALUE="<%=Strasse%>" MAXLENGTH=24>
<BR>Postleitzahl: <INPUT TYPE="TEXT" NAME="PLZ" VALUE="<%=PLZ%>" MAXLENGTH=5>
<BR>Ort:          <INPUT TYPE="TEXT" NAME="Ort" VALUE="<%=Ort%>" MAXLENGTH=24 >
<P><INPUT TYPE="SUBMIT" NAME="meinKnopf" VALUE="Eingabe fertig!">
</BODY>
</HTML>