Web開発のための基礎知識

ブラウザからの入力を伴う CGI の開発

CGI の本来の目的は静的な HTMLを排出することではなく、ブラウザからの入力を受け取って
動的なHTMLの出力結果を戻すことですから、これまでの CGI の例ではやはり物足りなく感じることでしょう。
前述の CGI は CGI の基本を示したに過ぎません。
それでは 商品マスターを検索して結果を表示するCGI を開発してみましょう。

最初に商品マスター(QTRFIL/SHOHIN) の DDSソースを紹介します。

【 商品マスター(QTRFIL/SHOHIN) 】
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ソースは次のとおりです。

【 初期画面:DB2_DSPDSPHED.htm 】
<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ソース 】
<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>