From: Wakou Aoyama Date: 2000-03-28T05:16:29+09:00 Subject: [ruby-list:21665] Re: How to use cgi.rb 青山です。 まだ参照できるサンプルが少ないので雰囲気をつかみにくいかもしれませんが、 基本的な使い方は次のような感じになっています。 string cgi.element(){ "string" } cgi.element() do "string" end cgi.element("attr1"=>"value1", "attr2"=>"value2") string cgi.element("attr1"=>"value1", "attr2"=>"value2"){ "string" } cgi.element("attr1"=>"value1", "attr2"=>"value2") do "string" end element は html3.2, html4.0(Strict, Transitional, Frameset) の DTD に あるものはすべてあります。各 DTD または適当なドキュメント、書籍等を参 照して下さい。 cgi = CGI.new("html3") # html3.2 cgi = CGI.new("html4") # html4.0 (Strict) cgi = CGI.new("html4Tr") # html4.0 Transitional cgi = CGI.new("html4Fr") # html4.0 Frameset html 生成系の各メソッドは String を返しますので、適切に + で連結する必 要があります。このタイミングが、なれるまではちょっとわかりにくいですが、 基本的には各ブロックの最後以外はすべて + で連結していくという感じです。 また、CGI#a, CGI#submit など、利用率が高く、かつ attribute を同時に与 える場合が多いものについては、cgi.a("url") のようなインターフェイスも 用意されています。そのような例外については RD ドキュメントを参照して下 さい。 ただし、そのような別インターフェイスが用意されているものについても、通 常の cgi.a("href"=>'url") のような書き方も受け付けますので、拡張された 記述方法を調べなければならないという事はありません。 cgi.submit("value") も cgi.input("TYPE"=>"submit", "VALUE"=>"value") のような書き方もできますし、基本的には、生成したい html の記述さえわかっ ていれば、特に cgi.rb のドキュメントを調べる事無く、スクリプトを書く事 が出来るようになっています。 home = "/cgi-bin/catenary.cgi" data = {} require "cgi" cgi = CGI.new("html3") cgi.out("charset"=>"euc-jp") do cgi.html("lang"=>"ja", "PRETTY"=>" ") do cgi.head(){ cgi.title(){ "Window title" } } + cgi.body() do cgi.form("post", home) do cgi.center() do cgi.hr + cgi.h2(){ "ケーブルの計算" } + cgi.hr + cgi.table() do cgi.tr() do cgi.td(){ "スパン(m)" } + cgi.td(){ cgi.text_field("sp", data["span"]) } + cgi.td(){ "高低差(m)" } + cgi.td(){ cgi.text_field("he", data["height"]) } + # ... cgi.td(){ "単位重量(t/m)" } + cgi.td(){ cgi.text_field("wc", data["weight"]) } + cgi.td(){ "断面積(m2)" } + cgi.td(){ cgi.text_field("ac", data["area"]) } end end + cgi.hr + cgi.submit("無応用長") + cgi.submit("平均張力") + cgi.submit("水平力") + cgi.submit("データクリア") end end end end end -- 青山 和光 Wakou Aoyama