IBM Buch

Verwaltung und Programmierung für OS/400

HTML-Blöcke

HTML-Blöcke definieren das Layout einer Web-Seite, verweisen auf Variablen und rufen Funktionen auf. HTML-Blöcke werden als Eingangs- und Endpunkte für das Makro verwendet. In der Net.Data-Aufrufanforderung wird immer ein HTML-Block angegeben, und jedes Makro muß mindestens einen HTML-Block enthalten.

Der erste HTML-Block im Beispielmakro heißt INPUT. HTML(INPUT) 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. Der Name kann alphanumerische Zeichen, Unterstreichungszeichen oder Punkte enthalten. 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, der oben beschrieben ist. 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 diesem Formular eingegebenen Daten in der Variablen input_data an den HTML-Block HTML(OUTPUT) übergeben.

Sie können über einen relativen Verweis auf HTML-Blöcke in anderen Makros zugreifen, wenn sich diese Makros auf demselben Web-Server befinden. So greift z. B. der ACTION-Parameter ACTION="../othermacro.d2w/main" auf den HTML-Block main im Makro othermacro.d2w zu. Auch hier werden alle in das Formular eingegebenen Daten in der Variablen input_data an dieses 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>

Sie können auf Formulardaten im Makro zugreifen und sie bearbeiten, indem Sie auf den im Formular angegebenen Variablennamen verweisen.

Der nächste HTML-Block des Beispiels ist der Block HTML(OUTPUT). Er enthält HTML-Befehle und Net.Data-Makroanweisungen, die die Verarbeitung der Ausgabe von der Anforderung HTML(INPUT) 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,
                                    die das Argument "input_data" übergibt.
<p>
<hr>
<p>
[
<a href="/">Home page</a> |
<a href="input">Previous page</a>]
%}

Wie der Block HTML(INPUT) besteht auch 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 gibt die Anzahl und die Verwendung der übergebenen Variablen an.


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