sample(結果) for cgictrl-0.1
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
[更新]