CGI の本来の目的は静的な HTMLを排出することではなく、ブラウザからの入力を受け取って
動的なHTMLの出力結果を戻すことですから、これまでの CGI の例ではやはり物足りなく感じることでしょう。
前述の CGI は CGI の基本を示したに過ぎません。
それでは 商品マスターを検索して結果を表示するCGI を開発してみましょう。
最初に商品マスター(QTRFIL/SHOHIN
) の DDSソースを紹介します。
0001.00 A********************************************** 0002.00 A* SHOHIN : 商品マスターファイル * 0003.00 A********************************************** 0004.00 A UNIQUE 0005.00 A R @SHOHIN TEXT(' 商品マスターレコード ') 0006.00 A* 0007.00 A SHCODE 10A COLHDG(' 商品コード ') 0008.00 A SHNAME 24O COLHDG(' 商品名 ') 0009.00 A SHTANK 7S 0 COLHDG(' 単価 ') 0010.00 A EDTCDE(1) 0011.00 A SHSCOD 4A COLHDG(' 品種コード ') 0012.00 A* 0013.00 A K SHCODE
商品マスター(QTRFIL/SHOHIN
)は 商品コードをキーとするだけの単純なファイルです。
入力のための初期画面のHTMLとして次のような画面のHTMLを用意しました。
これに商品コードを「NV-CF1」と入力して検索ボタンを押すと、次のように結果が表示される
CGI を開発してみます。
初期画面のHTMLに戻って初期画面 DB2_DSPDSPHED.htm のHTMLソースは次のとおりです。
<html> <head> <meta http-equiv="Content-Language" content="ja"> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title> 商品マスターファイル </title> </head> <body> <center> <h1> 商品マスターファイル </h1> </center> <hr> <form method="GET" action="http://218.44.135.18/cgi-bin/CGI003"> <p>項目を入力して「検索」ボタンを押してください。</p> <p>商品 コード <input type="text" WIDTH="10" SIZE="14" name="SHCODE"> <input type="SUBMIT" value="検索"> <input type="RESET" value="取消し"> </p> </form> </body> </html>
form タグで GET 命令で action としてaction="http://218.44.135.18/cgi-bin/CGI003"
によって CGIBIN/CGI003
が呼び出されることを意味しています。
そのとき渡されるパラメータとして
<input type="text" WIDTH="10" SIZE="14" name="SHCODE">
が定義されています。
次に結果としてのHTMLも示しておけば理解が早まりますので、結果のHTMLを先にご紹介します。
<html> <head> <meta http-equiv="Content-Language" content="ja"> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title> 商品マスターファイル </title> </head> <body> <center><h1> 商品マスターファイル </h1></center> <hr> <pre> <table cellpadding="1" cellspacing="0" border="0" bordercolor="#000000"> <tr> <td>商品 コード </td> <td>:</td> <td>NV-CF1 </td> </tr> <tr> <td>商品名 </td> <td>:</td> <td>Cカセット編集ビデオ </td> </tr> <tr> <td>単価 </td> <td>:</td> <td>0085000</td> </tr> <tr> <td>品種 コード </td> <td>:</td> <td>0002</td> </tr> </table> </pre> <a href="/AS400-NET.USR/PROJECT/CGI003/DB2_DSPDSPHED.HTM"> 検索条件の入力に戻る </a> </body> </html>