sample(結果) for cgictrl-0.1


Google

samp_calc_result.html(画面定義)

#
# html 定義
#
#  o `#'で始まる行はコメント行
#  o ファイル名は 画面名称.html とする
#  o START=置換対象文字列の指定開始文字列(未指定時は START=@\{ と見なす)
#    END=置換対象文字列の指定終了文字列(未指定時は END=\}@ と見なす)
#    START, ENDに指定する文字は本分中で使用しない文字を選んで指定する事。
#  o 置換対象は @{変数名}@ と記述する(START, END指定時は `@{', `}@'を指定文字列に変える事)
#  o 置換対象は @{変数名=既定値}@ と記述することもでき、この場合ユーザCGIから置換が
#    実行されない場合の既定値を指定したことになる。
#  o <form>〜</form>の間には必ず以下のinputタグを含める事。
#    (START, END指定時は `@{', `}@'を指定文字列に変える事)
#
#    <input type="hidden" name="SYS_sessionid" value="@{SYS_sessionid}@">
#
#  o <form>には、action="cgictrl.cgiへのパス" を指定する。
#
Content-Type: text/html; charset=utf-8

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>円の面積、球の体積を求める(結果)</title>
</head>
<body>
<div align="center"><h1>円の面積、球の体積を求める(結果)</h1></div>
<form method="post" action="./cgictrl.cgi">
<input type="hidden" name="SYS_sessionid" value="@{SYS_sessionid}@">
<div>
半径が@{hankei}@センチメートルの円の面積は@{menseki}@平方センチメートルです。
</div>
<div>
半径が@{hankei}@センチメートルの球の体積は@{taiseki}@立方センチメートルです。
</div>
<div>
<input type="submit" name="return" value="戻る">
</div>
</form>
<div>
<font color="@{msg_color=black}@">@{msg}@</color>
</div>
</body>
</html>

samp_calc_result.cgi(CGIプログラム)

#! /usr/bin/ruby
#
# cgictrl ver.0.1 2009.07.07 Masahiko Ito <m-ito@myh.no-ip.org>
#
#   ユーザコーディングサンプルスクリプト
#
require "cgi"
require "uri"
require "nkf"
require "cgictrl_common"
#--- user coding start ---
#--- user coding end   ---
#
# メイン処理
#
def main()
	cc = Cgictrl.new
	cc.start(cc.default_nkf_param)
	sub_open(cc)
	if (cc.is_send())
		next_tran = sub_send(cc)
	else
		next_tran = sub_recieve(cc)
	end
	sub_close(cc)
	cc.end(next_tran)
	exit 0
end
#
# オープン処理
#
#    o DB接続 etc
#
def sub_open(cc)
#--- user coding start ---
#--- user coding end   ---
end
#
# 画面編集処理
#
#   o spaにより渡されたデータを元に画面を編集する
#   o 次に起動するトランザクション(通常は自トランザクションと同じ)を返す
#
def sub_send(cc)
#--- user coding start ---
	pi = 3.14
	html_param = {}
	html_param["hankei"] = cc.get_spa("hankei")
	html_param["menseki"] = pi * cc.get_spa("hankei").to_f ** 2
	html_param["taiseki"] = 4.0 / 3.0 * pi * cc.get_spa("hankei").to_f ** 3

	cc.out_html("samp_calc_result", html_param)

	return "SAMP_CALC_RESULT"
#--- user coding end   ---
end
#
# 入力データ処理
#
#   o 入力データを処理する
#   o 次のトランザクションに渡すデータをspaにセットする
#   o 次に起動するトランザクションを返す
#
def sub_recieve(cc)
#--- user coding start ---
	cc.set_spa("err_sw", "")

	return "SAMP_CALC_ENTRY"
#--- user coding end   ---
end
#
# クローズ処理
#
#    o DB切断 etc
#
def sub_close(cc)
#--- user coding start ---
#--- user coding end   ---
end
#
# その他のユーザ関数定義
#
#--- user coding start ---
#--- user coding end   ---
#
# メイン処理開始
#
main()

m-ito@myh.no-ip.org

[更新]