チェックボックスについて(ruby)
cgiのプログラムでチェックボックスについてわからないことがあります。 今書いてある、プログラムだとすべての値を受け取ってしまいます。 選択されたものだけ表示させるようにさせたいと思っています。そのプログラムfor文で書いているのですが、どのように書いたらよいのでしょうか? 教えてください、お願いします!
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<title>プロフィール入力ページ</title>
</head>
<body>
プロフィールを入力してください。<br>
<form method="GET" action="http://profile2.cgi">
名前: <input type="text" name="name">
<br>
<br>
性別: <input type="radio" name="sex" value="男性">男
<input type="radio" name="sex" value="女性">女
<input type="radio" name="sex" value="その他">その他
<br>
<br>
趣味: <input type="checkbox" name="hobby" value="映画">映画
<input type="checkbox" name="hobby" value="音楽">音楽
<input type="checkbox" name="hobby" value="スポーツ">スポーツ
<input type="checkbox" name="hobby" value="料理">料理
<input type="checkbox" name="hobby" value="その他">その他
<br>
<br>
<br>
<input type="submit" value="送信">
</form>
</body>
</html>
#!/usr/local/bin/ruby
print "Content-type: text/html; charset=euc-jp\n\n"
$KCODE = "e"
require "cgi"
cgi = CGI.new
namae = cgi["name"]
sei = cgi["sex"]
syumi = cgi.params["hobby"]
ary = ["映画, ", "音楽, ", "スポーツ, ", "料理, ", "その他 "]
str = ary[0] + " " + ary[1] + " " + ary[2] + " " + ary[3] + " " + ary[4] + " "
syumi = ""
for x in str
syumi = syumi + x
end
print <<EOS
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<title>プロフィールの確認</title>
</head>
<body>
名前: #{namae}
<br>
<br>
性別: #{sei}
<br>
<br>
趣味: #{syumi}
</body>
</html>
EOS
動作環境はruby 1.8.7 (2010-01-10 patchlevel 249) [i686-linux]になります。
お礼
解答ありがとうございます。 その方法だとIE6では ↓ のように表示されまくいきません。 □ パソコン □ 金金金金 □ 金金金金 しかしながら、自己解決しました。下記のようなソースにすればできました。 <DIV style="margin-bottom:10px;"> <input type=checkbox value="PC">パソコン</DIV> <BR> <DIV style="margin-bottom:10px;"> <input type=checkbox value="SP">スポーツ </DIV> <BR> <DIV style="margin-bottom:10px;"> <input type=checkbox value="RD">読書 </DIV> <BR> 行間が line-height:1.5em と指定してあるのにあかなかった原因は、実際には選択肢(パソコン、読書など)を<label>でくくってチェックボックスと関連付けたためかもしれません。 おさわがせ失礼しました。