IBM Books

OS/400 版的 Net.Data 管理與程式設計手冊

HTML 區塊

HTML 區塊會定義網頁的配置、參照變數,以及呼叫函數。HTML 區塊會作為巨集的進入與跳出點。 HTML 區塊恆會設定在 Net.Data 呼叫要求中,且每一巨集至少須有一個 HTML 區塊。

範例巨集檔案中的第一個 HTML 區塊名為 INPUT。 INPUT 區塊含有具有一個輸入欄位的簡單套表的 HTML。

%{ **********************      HTML 區塊:輸入    ************************%}
%HTML (INPUT) {               <--- 識別出此 HTML 區塊的名稱。
  <html>
<head>
<title>$(page_title)</title>  <--- 請注意變數替代。
</head><body>
<h1>輸入套表</h1>
今天是 @today()             <--- 此行包含一個函數呼叫。
 
<FORM METHOD="post" ACTION="output">  <--- 當提出套表時,
                                           會呼叫 "output" HTML 區塊。
請輸入一些要傳給 REXX 程式的資料:
<INPUT NAME="input_data"      <--- 當提出套表時,"input_data" 會被定義
TYPE="text" SIZE="30">             而且會在此巨集的其他位置被參考到的。
                                   其被起始設定成使用者在輸入欄位中
                                   所鍵入的任何資料。
<p>
<INPUT TYPE="submit" VALUE="Enter">
 
<hr>
<p>
[
<a href="/">首頁</a>]
 </body><html>
%}                            <--- 關閉此區塊。

整個區塊都用 HTML 區塊識別字 %HTML (INPUT) {...%} 圍住。 INPUT 指出此區塊的名稱。 您可以為其指定任何名稱。 HTML <title> 標籤包含變數替代的範例。 變數 page_title 的值,會取代套表的標題。

此區塊中還含有一個函數呼叫。 表示式 @today() 是對函數 today 的呼叫。 此函數是定義在上面描述的 FUNCTION 區塊中。 Net.Data 將 today 函數的結果,亦即本日, 插入與 @today() 表示式同一位置 HTML 本文中。

FORM 陳述式中的 ACTION 參數,提供 HTML 區塊之間或巨集之間的導引範例。 若是參照 ACTION 參數中的另一個區塊名稱,則當提出套表時, 即會存取該區塊。 任何來自 HTML 套表的輸入資料,都會被當成隱含變數來傳給區塊。 定義在此套表中的單一輸入欄位,亦可適用。當提出格式後, 即會將此欄位中的資料透過 input_data 傳遞給 HTML 輸出區塊。

只要巨集檔是位在同一 Web 伺服器上, 您便可以使用相關參照方式,來存取其他巨集檔中的 HTML 區塊。例如, ACTION 參數 ACTION="../othermacro.d2w/main" 可存取巨集檔 othermacro.d2w 中稱為 main 的 HTML 區塊。 同樣地,此套表中鍵入的任何資料, 皆會以 input_data 變數傳送這個巨集。

當您呼叫 Net.Data 時,您是以當成 URL 的一部份來傳遞變數。例如:

<a href="/cgi-bin/db2www/othermacro.d2w/main?input_data=value">下一個巨集</a>

您不必像使用大部份的 CGI 程式一樣,需要定義環境變數才能接收輸入資料。 Net.Data 會為您處理環境變數。 您只需參照變數名稱即可。

範例中的下一個區塊為 OUTPUT 區塊。 它包含 HTML 標籤和 Net.Data 巨集陳述式, 這些陳述式定義 INPUT 區塊要求所處理的輸出。

%{ **********************    HTML 區塊:輸出     ************************%}
%HTML (OUTPUT) {
  <html>
<head>
<title>$(page_title)</title>  <--- 其它替代。
 
</head><body>
<h1>輸出頁</h1>
<p>@rexx1(input_data)  <--- 此行包含呼叫函數 rexx1,
                            及傳送 "input_data" 引數給函數。
<p>
<hr>
<p>
[
<a href="/">首頁</a> |
<a href="input">前一頁</a>]
%}

類似 INPUT 區塊,是一個標準的 HTML, 再加上用來替代變數的巨集陳述式以及一個函數呼叫。同樣地, page_title 變數被取代成標題陳述式。 一如前述,本區塊中含有一個函數呼叫。在此例中,它會呼叫函數 rexx1, 並將變數 input_data 的內容傳遞給函數, 而內容是來自輸入區塊中定義的套表。 您可以和函數間互傳多個變數。 函數定義決定要傳遞的變數之數目與類型。


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]