Net.Data Verwaltung und Programmierung für OS/2, Windows NT und UNIX

HTML-Blöcke

HTML-Blöcke dienen zur Definition des Web-Seiten-Layouts, zur Angabe von Variablen und zum Aufrufen von Funktionen mit Hilfe von HTML-Blöcken, die als Eingangs- und Endpunkte für das Makro verwendet werden. In der Net.Data-Aufrufsanforderung wird immer ein HTML-Block angegeben, und jedes Makro muß mindestens einen HTML-Block enthalten.

Der erste HTML-Block in der Beispielmakrodatei heißt INPUT. Der INPUT-Block enthält HTML-Code für ein einfaches Formular mit einem Eingabefeld.

%{ **********************      HTML Block: Input    ************************%}
%HTML (INPUT) {               <--- Gibt den Namen dieses HTML-Blocks an. 
<html>
<head>
<title>$(page_title)</title>  <--- Beachten Sie die Variablensubstitution.
</head><body>
<h1>Input Form</h1>
Today is @today()             <--- Diese Zeile enthält den Aufruf einer Funktion.

<FORM METHOD="post" ACTION="output">  <--- Bei Übergabe dieses Formulars
                                       wird der HTML-Block "output" aufgerufen. 
Type some data to pass to a REXX program:
<INPUT NAME="input_data"      <--- "input_data" wird bei Übergabe des Formulars 
TYPE="text" SIZE="30">               definiert. Auf diese Variable kann von anderer
                                 Stelle des Makros verwiesen werden. Sie wird mit
                                 der Benutzereingabe initialisiert.
<p>
<INPUT TYPE="submit" VALUE="Enter">

<hr>
<p>
[
<a href="/">Home page</a>]
 </body><html>
%}                            <--- Beendet den HTML-Block.

Der gesamte HTML-Block wird von der HTML-Blockkennung %HTML (INPUT) {...%} eingeschlossen. INPUT gibt den Namen dieses Blocks an. Sie können einen beliebigen Namen vergeben. Der HTML-Befehl <title> enthält ein Beispiel für eine Variablensubstitution. Der Wert der Variablen page_title wird in den Titel des Formulars eingesetzt.

Dieser Block enthält außerdem einen Funktionsaufruf. Der Ausdruck @today() ist ein Aufruf an die Funktion today. Diese Funktion wird im Block FUNCTION definiert, die im folgenden noch näher beschrieben wird. Net.Data fügt das Ergebnis der Funktion today, d. h. das aktuelle Datum, in den HTML-Text an der Stelle ein, an der sich der Ausdruck @today() befindet.

Der Parameter ACTION der Anweisung FORM zeigt ein Beispiel für die Navigation zwischen HTML-Blöcken bzw. zwischen Makros. Durch den Verweis auf den Namen eines anderen Blocks in einem Parameter ACTION wird bei der Übergabe des Formulars auf diesen Block zugegriffen. Alle Eingabedaten eines HTML-Formulars werden als implizite Variablen an den neuen Block übergeben. Dies gilt für das einzelne Eingabefeld, das in diesem Formular definiert ist. Bei der Übergabe des Formulars werden die in dieses Feld eingegebenen Daten in der Variablen input_data an den HTML-Block OUTPUT übergeben.

Sie können über einen relativen Verweis auf HTML-Blöcke in anderen Makrodateien zugreifen, wenn sich diese Makrodateien auf demselben Web-Server befinden. So greift beispielsweise der ACTION-Parameter ACTION="../othermacro.d2w/main" auf den HTML-Block main in der Makrodatei othermacro.d2w zu. Auch hier werden alle in das Formular eingegebenen Daten in der Variablen input_data an das andere Makro übergeben.

Beim Aufrufen von Net.Data wird die Variable als Teil der URL-Adresse weitergegeben. Beispiel:

<a href="/cgi-bin/db2www/othermacro.d2w/main?input_data=value">Next macro</a>

Zum Empfang von Eingabedaten müssen keine Umgebungsvariablen definiert werden, wie es bei den meisten CGI-Programmen der Fall ist. Net.Data verarbeitet Umgebungsvariablen für Sie. Sie müssen die Variablennamen lediglich angeben.

Der nächste HTML-Block des Beispiels ist der Block OUTPUT. Er enthält HTML-Code und Net.Data-Makroanweisungen, die die Verarbeitung der Ausgabe von der INPUT-Blockanforderung definieren.

%{ **********************    HTML Block: Output     ************************%}
%HTML (OUTPUT) {
<html>
<head>
<title>$(page_title)</title>  <--- Weitere Substitution
 
</head><body>
<h1>Output Page</h1>
<p>@rexx1(input_data)  <--- Diese Zeile enthält einen Aufruf der Funktion rexx1,
                          der das Argument "input_data" übergibt.
<p>
<hr>
<p>
[
<a href="/">Home page</a> |
<a href="input">Previous page</a>]
%}

Ebenso wie der INPUT-Block besteht dieser Block aus Standard-HTML mit Net.Data-Makroanweisungen für die Substitution von Variablen und einem Funktionsaufruf. Auch hier wird in der Titelanweisung der Wert der Variablen page_title eingesetzt. Außerdem enthält dieser Block ebenfalls einen Funktionsaufruf. In diesem Fall wird die Funktion rexx1 aufgerufen, und der Inhalt der Variablen input_data, der von dem im INPUT-Block definierten Formular empfangen wurde, an die Funktion übergeben. Sie können Variablen in beliebiger Zahl an eine Funktion bzw. von einer Funktion übergeben. Die Funktionsdefinition legt die Anzahl und die Arten der übergebenen Variablen fest.


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]