vorheriges KapitelInhaltsverzeichnisIndexFeedbackNΣchstes Kapitel


Die InputBox-Funktion

Benutzung der InputBox-Funktion

Die MsgBox-Funktion

Das Benutzen von HTML-Formularen

ActiveX-Controls im Einsatz

Zusammenfassung

Was kommt als nächstes?

Fragen und Antworten

Aufgaben



3


Interaktion mit Anwendern

Nahezu alle Web-Applikationen kommunizieren und interagieren mit Anwendern, die eine Web-Site besuchen. Manchmal ist diese Form der Interaktion indirekt. Dies ist beispielsweise so, wenn Sie eine Web-Site in Abhängigkeit von der Tageszeit mit »Good Morning« oder »Good Evening« begrüßt. Die dynamische und interaktive Natur von Web-Seiten ist nicht immer auf den ersten Blick erkennbar und offenkundig, da der Anwender keine speziellen Web-Applikationen ausführen muß. Auf der anderen Seite kann die Interaktion zwischen einer Web-Applikation und dem Anwender sehr direkte und erkennbare Formen annehmen - bestes Beispiel dafür sind elektronische Zahlungssysteme im Internet.


In diesem Kapitel lernen Sie, wie ASP-Applikationen mit Anwendern via ActiveX-Steuerungen, Nachrichten-Boxen, Eingabe-Boxen, HTML-Formularen und natürlich HTML-Text kommunizieren. Am Ende des Kapitels sind Sie in der Lage, interaktive ASP-Applikationen zu erstellen, die Ihnen eine neue Qualität in Sachen Web-Seite ermöglichen.


Bevor wir jetzt fortfahren, sollten Sie wissen, daß nahezu alle User-Eingaben auf der Client-Seite erscheinen. Überprüfen Sie deshalb, ob Ihr Web-Browser in der Lage ist, diese Aufgaben zu verarbeiten. Einige Web-Browser unterstützen kein VBScript, so daß Sie keinen Zugriff auf Funktionen wie InputBox oder MsgBox haben.

Es besteht jedoch kein Grund zur Panik, wenn Sie einen derartigen Web-Browser haben sollten, da ASP-Applikationen auch über HTML-Formulare mit Anwendern agieren können.


Es gibt verschiedene Wege, wie ASP-Applikationen einen User-Input erzielen können. In Abhängigkeit von den entsprechenden Applikationen und Umständen stehen folgende Methoden zur Verfügung:



Die InputBox-Funktion

Die Funktion InputBox wird von einer Client-seitigen VBScript-Subroutine angezeigt. Dies resultiert aus der Tatsache, daß diese Funktion ein Feature von VBScript ist. Deshalb sollten Sie darauf achten, daß Ihr Web-Browser VBScript unterstützt, bevor Sie die Funktion verwenden. Die InputBox-Funktion verlangt vom Anwender eine Eingabe über eine Dialog-Box mit einem Daten-Eingabefeld. Die Syntax lautet wie folgt:


InputBox (<Prompt>,<Title>,<Default>,<X>,<Y>)


Die Argument in den Klammern haben folgende Funktionen:



Benutzung der InputBox-Funktion

Listing 3.1 demonstriert, wie eine ASP-Applikation eine Eingabe mittels der InputBox-Funktion verlangt. Im folgenden Beispiel verlangt diese Funktion die Eingabe eine User-Namens und die Höhe eines zu zeichnenden Baumes.


Listing 3.1: Die InputBox-Funktion verlangt vom Anwender eine Eingabe


Icon

1: <%@ LANGUAGE="VBSCRIPT" %>
2: <SCRIPT LANGUAGE="VBSCRIPT" RUNAT=SERVER>
3: Sub DrawTree ()
4:
5: TreeHeight = Request.QueryString("TreeHeight")
6: UserInput = Request.QueryString("Name")
7:
8: Response.Write "<PRE>"
9: For LoopCountVariable = 0 To (TreeHeight - 1)
10: Response.Write "Hello " & UserInput & "!"
11: For AsterisksCountVariable = 0 To
(TreeHeight-LoopCountVariable)
12: Response.Write " "
13: Next
14: For AsterisksCountVariable = 0 To (LoopCountVariable*2)
15: Response.Write "*"
16: Next
17: Response.Write "<BR>"
18: Next
19: For LineCountVariable = 0 To ((TreeHeight / 3) - 1)
20: For SpaceCountVariable = 0 To ( 7 + Len(UserInput) +
(TreeHeight))
21: Response.Write " "
22: Next
23: Response.Write "***<BR>"
24: Next
25: Response.Write "</PRE><HR>"
26: Response.Write "<A HREF=InputBox.asp>Click here to start over.
</A>"
27:
28: End Sub
29: </SCRIPT>
30: <HTML>
31: <HEAD>
32: <META NAME="GENERATOR" Content="Microsoft Visual InterDev 1.0">
33: <META HTTP-EQUIV="Content-Type" content="text/html;
charset=iso-8859-1">
34: <TITLE>Using The InputBox Function For User Input</TITLE>
35: </HEAD>
36: <BODY BGCOLOR="FFFFFF">
37: <B>
38:
39: <%
40: If NOT (IsEmpty(Request.QueryString("TreeHeight"))) Then
41: Call DrawTree
42: Else %>
43: <FORM ACTION="InputBox.asp" METHOD="GET" NAME="DataForm">
44: <INPUT TYPE=HIDDEN NAME="Name">
45: <INPUT TYPE=HIDDEN NAME="TreeHeight">
46: </FORM>
47: <SCRIPT LANGUAGE="VBScript">
48: <!--
49:
50: Sub window_onLoad()
51:
52: Name = InputBox ("Please enter your name and press enter", _
53: "The InputBox function is used to obtain your name", _
54: "Please type your name here", 300, 200)
55: Do
56: TreeHeight = InputBox ("Please enter the height of your tree", _
57: "Please enter the height of your tree (1-20)", _
58: "Please type the height of your tree
here",200,200)
59: If NOT((TreeHeight>=1) AND (TreeHeight<=20)) Then
60: MsgBox "Please enter a height between 1 and 20."
61: End If
62: Loop Until ((TreeHeight>=1) AND (TreeHeight<=20))
63:
64: DataForm.Name.value=Name
65: DataForm.TreeHeight.value=TreeHeight
66: DataForm.Submit
67:
68: end sub
69: -->
70: </SCRIPT>
71: <%
72: End If
73: %>
74:
75: </B>
76: </BODY>
77: </HTML>

Die VBScript-Subroutine windows_onLoad wird immer ausgeführt, bevor der Anwender die Elemente einer Web-Seite manipulieren kann. Deshalb sollte InputBox innerhalb dieser Subroutine plaziert werden, wie aus Zeile 50 des Listings 3.1 zu ersehen ist. Dies hat den Effekt, daß sämtliche Input-Boxen angezeigt werden, sobald die Web-Seite geladen wird.

Icon

Sobald die Web-Seite aus Listing 3.1 aufgerufen wurde, zeigt diese die Eingabe-Box aus Abbildung 3.1 an und fragt nach dem Namen des Users. Die Eingabe-Box wird in den Zeilen 52 bis 54 in Listing 3.1 erstellt.

siehe Abbildung

Abbildung 3.1:
Die ASP-Applikation benutzt die Funktion InputBox, um den User-Namen einzugeben

Nachdem Sie den Namen eingegeben und OK betätigt haben, erscheint die Eingabebox aus Abbildung 3.2. Diese fragt Sie nach der Höhe des zu erstellenden Baumes. Die Zeilen 56 bis 58 übernehmen diese Aufgabe.


siehe Abbildung

Abbildung 3.2:
An dieser Stelle
fragt Sie die
ASP-Applikation
nach der Höhe des
zu zeichnenden
Baumes

Die Do...Loop Until-Struktur (Zeilen 55 bis 62) stellt sicher, daß der Wert zwischen 1 und 20 liegt. Sobald ein ungültiger Wert eingegeben wird, warnt Sie eine Message-Box (siehe Abbildung 3.3), und der Anwender muß einen neuen Wert eingeben.


siehe Abbildung

Abbildung 3.3:
Ungültige Werte werden nicht akzeptiert

Nachdem alle Eingaben getätigt wurden, generiert die ASP-Applikation die Web-Seite (siehe Abbildung 3.4).


Die ASP-Applikation aus Listing 3.1 demonstriert die Benutzung der InputBox-Funktion zur Eingabe von Werten. Die Zeilen 64 bis 66 aus Listing 3.1 füllen die Variablen mit Werten, die im Anschluß daran an die ASP-Applikation übergeben werden. Die beiden HTML-Form-Variablen, welche den Benutzernamen und die Baumhöhe transferieren, definieren die Zeilen 44 und 45 als verdeckte Variablen. Dieser Trick wird dazu benutzt, um Informationen an die ASP-Applikation zu übertragen, wenn die Informationen nicht direkt aus einer HTML-Form kommen. Sie haben dann die Möglichkeit, versteckte Variablen zu deklarieren und diese zur ASP-Applikation zu senden.


siehe Abbildung

Abbildung 3.4:
Die Web-Seite,
welche von der
ASP-Applikation
generiert wurde


Die MsgBox-Funktion

Obwohl der Einsatz der MsgBox-Funktion auf den ersten Blick etwas kompliziert erscheint, verleiht Sie Ihren ASP-Applikationen doch einen professionellen Touch. Der Sinn dieser Funktion ist es, eine Message-Box anzuzeigen. Die Syntax lautet wie folgt:


MsgBox <MessageBoxPrompt>,<ButtonStyle>,<Title>


Ersetzen Sie <MessageBoxPrompt> durch den Prompt der Message-Box und <Title> durch den Titel der Message-Box. Indem Sie <ButtonStyle> durch die Werte aus Tabelle 3.1 ersetzen, können Sie die Message-Box Ihren Gegebenheiten anpassen. So können Sie beispielsweise eine OK-Dialogbox mit einem Warnhinweis-Symbol versehen, indem Sie <ButtonStyle> den Wert 48 zuweisen. Beide Parameter - <ButtonStyle> und <Title> - sind optionale Argumente.


Die MsgBox-Funktion ist ein Feature von VBScript, das nur funktioniert, wenn Ihr Browser VBScript unterstützt.


Tabelle 3.1: Die Message-Box-Codes

Schaltflächen-Typ

Schaltflächen-Beschreibung

0

OK

1

OK und Cancel

2

Abort, Retry und Ignore

3

Yes, No und Cancel

4

Yes und No

5

Retry und Cancel

16

Symbol für Critical Message (Abbildung 3.5)

32

Symbol für Warning Query (Abbildung 3.6)

48

Symbol für Warning Message (Abbildung 3.7)

64

Symbol für Information Message (Abbildung 3.8)

256

Die zweite Schaltfläche ist Default-Einstellung

512

Die dritte Schaltfläche ist Default-Einstellung

4096

Die Message-Box erscheint immer im Vordergrund, bis der Anwender auf die Message-Box reagiert

Die VBScript-Subroutine window_onLoad wird immer angezeigt, bevor Sie Elemente einer Web-Seite bedienen und manipulieren können. Deshalb sollte das MsgBox-Statement in die Window_onLoad-Subroutine eingebunden werden. Dadurch wird die Message-Box angezeigt, sobald die ersten Elemente der Web-Seite geladen werden.

Die Abbildungen 3.5 bis 3.8 zeigen die verschiedenen Typen von Message-Boxen an, die Sie mittels der MsgBox-Funktion erstellen können.


siehe Abbildung

Abbildung 3.5:
Die Critical-Message-Box


siehe Abbildung

Abbildung 3.6:
Die Warning-Query-Box


siehe Abbildung

Abbildung 3.7:
Die Warning-Message-Box


siehe Abbildung

Abbildung 3.8:
Die Information-Message-Box


Die Applikation aus Listing 3.2 demonstriert, wie eine ASP-Applikation eine Message-Box auf dem Desktop des Anwenders ausgibt. ASP-Applikationen benutzen die MsgBox-Funktion, um dem Anwender systemkritische Informationen anzuzeigen. Die Applikation aus dem folgenden Beispiel zeigt Ihnen, wie Sie dem Web-Surfer mitteilen können, daß die Informationen, die er sieht, vertraulich sind (siehe Abbildung 3.9).


Listing 3.2: Die MsgBox-Funktion wird von einer ASP-Applikation benutzt


Icon

1: <%@ LANGUAGE="VBSCRIPT" %>
2:
3: <SCRIPT LANGUAGE="VBScript">
4: <!--
5:
6: Sub window_onLoad()
7:
8: MsgBox "The information you are about to see is confidential!", _
9: 16 ,"Confidential information - keep it private!"
10:
11: end sub
12: -->
13: </SCRIPT>
14:
15: <HTML>
16: <HEAD>
17: <META NAME="GENERATOR" Content="Microsoft Visual InterDev 1.0">
18: <META HTTP-EQUIV="Content-Type" content="text/html;
charset=iso-8859-1">
19: <TITLE>Using The MsgBox Function</TITLE>
20: </HEAD>
21: <BODY BGCOLOR="FFFFFF">
22:
23: <H1>Confidential information goes here!</H1>
24:
25: </BODY>
26: </HTML>

Es gibt eine Vielzahl praktischer Applikationen, die auf der MsgBox-Funktion basieren. Die allseits bekannten Abort-, Retry-, oder Ignore-Message-Boxen basieren allesamt auf dieser Funktion.


siehe Abbildung

Abbildung 3.9:
Die Applikation aus Listing 3.2


Das Benutzen von HTML-Formularen

Sämtliche am Markt verfügbaren Web-Browser unterstützen HTML-Formulare, so daß ASP-Applikationen HTML-Formulare benutzen können, um mit den verschiedensten Anwendern zu kommunizieren, welche die entsprechenden Web-Sites besuchen. Die Applikation aus Listing 3.3 demonstriert, wie eine ASP-Applikation mittels HTML-Formularen mit Anwendern zu kommunizieren in der Lage ist. Eine ASP-Applikation ist in der Lage, durch den Einsatz der Methode Request.QueryString festzustellen, welchen Wert eine Variable eines HTML-Formulars hat. Ein kleines Beispiel: Reuest.QueryString("name") gibt den Wert der Variablen "name" zurück.


Listing 3.3: Eine ASP-Applikation, die ein HTML-Formular zur Dateneingabe benutzt


Icon

1: <%@ LANGUAGE="VBSCRIPT" %>
2:
3: <HTML>
4: <HEAD>
5: <META NAME="GENERATOR" Content="Microsoft Visual InterDev 1.0">
6: <META HTTP-EQUIV="Content-Type" content="text/html;
charset=iso-8859-1">
7: <TITLE>Using An HTML Form For Data Entry</TITLE>
8: </HEAD>
9: <BODY>
10:
11: <H1>
12: <%
13: If NOT (IsEmpty(Request.QueryString("Name"))) Then
14: Response.Write ("Hi " & Request.QueryString("Name") )
15: Else %>
16: Please enter your name <BR>
17: <FORM ACTION="HTMLFormInput.asp" METHOD="GET" NAME="DataForm">
18: <INPUT TYPE=Text NAME="Name" Size="35"
19: VALUE="Please enter your name here">
20: <INPUT TYPE="SUBMIT" VALUE="Submit name to ASP
application">
21: </FORM>
22: <%
23: End If
24: %>
25: </H1>
26:
27: </BODY>
28: </HTML>

Es zeugt von gutem Programmierstil, wenn Sie dem Anwender Default-Werte zur Verfügung stellen.

Sobald die Applikation aus Listing 3.3 gestartet wird, wird die Web-Seite aus Abbildung 3.10 angezeigt. Das Formular innerhalb dieser Web-Seite ist mit einer ASP-Applikation verbunden, die das HTML-Formular generiert. Nachdem die Schaltfläche Submit name to ASP application betätigt wird, überträgt die Applikation den Namen in der Textbox zur ASP-Applikation.


Anschließend generiert die ASP-Applikation die folgende Web-Seite (siehe Abbildung 3.11).


siehe Abbildung

Abbildung 3.10:
Ein HTML-Formular dient zur Dateneingabe

siehe Abbildung

Abbildung 3.11:
Der Wert der Dateneingabe wird zur ASP-Applikation gesendet und auf dem Bildschirm ausgegeben


ActiveX-Controls im Einsatz

Web-Browser, die ActiveX unterstützen (und das sind die meisten), können ActiveX-Steuerungen (Controls) benutzen, um Eingaben vom Anwender an eine ASP-Applikation zu übergeben. Die Applikation aus Listing 3.4 demonstriert, wie ActiveX-Steuerungen und ASP-Applikationen miteinander arbeiten. Da ActiveX-Steuerungen nicht direkt von HTML-Formularen unterstützt werden, bedarf es eines kleinen Tricks, um eine Datenübergabe an die ASP-Applikation zu initiieren. Sobald die Information aus dem Eingabefeld zum Versand an die ASP-Applikation bereit ist, kopiert eine VBScript-Subroutine die Werte der ActiveX-Steuerung zu einer versteckten HTML-Formular-Variablen. Ist dies geschehen, so ist das HTML-Formular mit der ASP-Applikation verbunden.


Listing 3.4: Eine ASP-Applikation, die ActiveX-Controls zur Dateneingabe benutzt


Icon

1: <%@ LANGUAGE="VBSCRIPT" %>
2:
3: <SCRIPT LANGUAGE="VBScript">
4: <!--
5: Sub SubmitButton_onClick()
6:
7: DataForm.Name.value=UserName.Value
8: DataForm.Submit
9:
10: end sub
11: -->
12: </SCRIPT>
13:
14: <HTML>
15: <HEAD>
16: <META NAME="GENERATOR" Content="Microsoft Visual InterDev 1.0">
17: <META HTTP-EQUIV="Content-Type" content="text/html;
charset=iso-8859-1">
18: <TITLE>Using ActiveX Controls For Data Entry</TITLE>
19: </HEAD>
20: <BODY BGCOLOR=FFFFFF>
21:
22: <H1>
23: <%
24: If NOT (IsEmpty(Request.QueryString("Name"))) Then
25: Response.Write ("Hi " & Request.QueryString("Name") )
26: Else %>
27: Please enter your name <BR>
28: <OBJECT ID="UserName" WIDTH=300 HEIGHT=37
29: CLASSID="CLSID:8BD21D10-EC42-11CE-9E0D-00AA006002F3">
30: <PARAM NAME="VariousPropertyBits" VALUE="746604571">
31: <PARAM NAME="BackColor" VALUE="8454143">
32: <PARAM NAME="Size" VALUE="7938;979">
33: <PARAM NAME="Value" VALUE="Please type your name here">
34: <PARAM NAME="BorderColor" VALUE="0">
35: <PARAM NAME="FontName" VALUE="Comic Sans MS">
36: <PARAM NAME="FontHeight" VALUE="315">
37: <PARAM NAME="FontCharSet" VALUE="0">
38: <PARAM NAME="FontPitchAndFamily" VALUE="2">
39: </OBJECT>
40: <FORM ACTION="ActiveXInput.asp" METHOD="GET"
41: NAME="DataForm">
42: <INPUT TYPE=HIDDEN NAME="Name">
43: <INPUT TYPE=Button Name=SubmitButton
44: VALUE="Submit name to ASP application">
45: </FORM>
46: <%
47: End If
48: %>
49: </H1>
50:
51: </BODY>
52: </HTML>

Sobald die Applikation aus Listing 3.4 gestartet wurde, erscheint die Web-Seite aus Abbildung 3.12. Die ASP-Applikation fordert den Anwender auf, seinen Namen einzugeben.


Die TextBox-Steuerung ist eine ActiveX-Steuerung, die im Internet Explorer enthalten ist.


siehe Abbildung

Abbildung 3.12:
Eine ActiveX-Steuerung findet Anwendung, um eingegebene Daten weiterzuverarbeiten

Nachdem die Schaltfläche Submit name to ASP application betätigt wurde, überträgt die Routine die Dateneingabe zur ASP-Applikation. Die Zeile 7 des Listing 3.4 kopiert den Wert, welcher vom Anwender eingegeben wurde, zu einem verdeckten HTML-Formularfeld. Die ASP-Applikation generiert im Anschluß daran die in Abbildung 3.13 gezeigte Bildschirmausgabe.


siehe Abbildung

Abbildung 3.13:
Die ASP-Applikation übernimmt den Wert der ActiveX-Steuerung


Zusammenfassung

Nahezu alle Web-Applikationen kommunizieren mit Anwendern, um Informationen anzuzeigen bzw. weiterzuverarbeiten. In diesem Kapitel lernten Sie, wie Sie HTML, Message- und Input-Boxen, ActiveX-Steuerungen sowie HTML-Formularelemente benutzen, um mit Web-Reisenden zu kommunizieren. Verwenden Sie ActiveX-Steuerelemente dann, wenn die Internet-Besucher Web-Browser benutzen, die ActiveX und ActiveX-Steuerungen unterstützen.



Was kommt als nächstes?

Die Built-In-Objekte, die zusammen mit den Active Server Pages ausgeliefert werden, sind sehr hilfreich bei der Entwicklung von ASP-Applikationen. Im nächsten Kapitel lernen Sie die Objekte Application, Request, Response, Server und Session kennen, um ASP-Applikationen zu entwickeln.



Fragen und Antworten

Frage:

Wie kann eine ASP-Applikation Daten von einer User-Eingabe erhalten?

Antwort:

ASP-Applikationen sind in der Lage, User-Eingaben über Message-Boxen, Eingabe-Boxen, ActiveX-Steuerungen und HTML-Formularen zu bekommen.

Frage:

Ich bin nicht sicher, ob mein Web-Browser ActiveX oder VBScript unterstützt. Wie kann meine ASP-Applikation in diesem Fall Daten aus Anwender-Eingaben erhalten?

Antwort:

Alle Web-Browser sind in der Lage, HTML-Formulare zu verarbeiten. Ihre ASP-Applikation kann HTML-Formulare benutzen, um Daten an die ASP-Applikation zu senden.

Frage:

Wie kann ich Werte aus einer Input-Box an eine ASP-Applikation übergeben?

Antwort:

Eine VBScript-Subroutine ist in der Lage, Werte einer verdeckten HTML-Formular-Variablen zuzuweisen, um diese im Anschluß daran an die ASP-Applikation zu übergeben.


Aufgaben

1. Erstellen Sie eine ASP-Applikation, die zwei Message-Boxen benutzt, um zwei Zahlenwerte zu erhalten. Benutzen Sie die MsgBox-Funktion, um die Summe beider Zahlen anzuzeigen.


2. Fügen Sie ein ActiveX-Control der ASP-Applikation aus Aufgabe 1 hinzu, um den Namen des Users zu erfahren und ihn entsprechend zu begrüßen.



Ein Imprint des Markt&Technik Buch- und Software-Verlag GmbH.


vorheriges KapitelTop Of PageInhaltsverzeichnisIndexFeedbackNΣchstes Kapitel