CGI-BBS > CGI > Perl > チェックボックスにチェックが入った項目を表示させたい


カレッヂ
カレッヂ


質問者 KTH  投稿日 2004/5/17(月) 20:09:23
社内の写真の注文フォームを作成しています。
109枚の写真が貼ってあって、その下にチェックボックスがあり、そのチェックボックスに
チェックをつけて注文とします。
そして確認画面にてチェックが入った写真と番号と値段を表示させるようにしたく、以下のように
コードを組んでみました。

for( $i = 0; $i < 110; $i++ ) {
if( $photo[$i] eq 'on' ) {
print "<tr bgcolor=#C0C0C0><td><div align=center><font color=#000000>$i</font></div></td>\n";
print "<td><img src=\"./image/$i.JPG\" width=40 height=30 align=center></td>\n";
print "<td align=right><font color=#000000>¥35<input type=hidden name=cost$i value=40></font></td></tr>\n";
print "<input type=hidden name=$i value=on>\n";
}
}

しかし、実際動かしたところ、チェックした部分の写真、番号と値段が確認画面に表示されませんでした。
(チェックボックスの結果(選んである場合を"on"としてする)を$photo[$i]として、確認画面で
表示させる画像を1.JPG, 2.JPG, 3.JPG,...., 109.JPGとしています。)
これはどこが悪いと考えられるでしょうか?

申し訳ございませんがアドバイスいただけないでしょうか?

宜しくお願い致します。

プロバイダ参照:
サーバのOS:UNIXサーバ
パソコンのOS:WinNT系
エディタ:TeraTerm
FTPソフト:FFFTP
サーバ移転:していない
改造:していない
CGI習熟度:beginner

回答者 しあわせのツボ  [削除]  投稿日 2004/5/17(月) 21:05:04
前段階での処理がわからないので何とも言えませんが、素直に読む限り
「配列変数@photoの、番号に対応する配列要素の値が"on"なら以下をprint」という条件指定に
対応する変数が準備されていないのではと思います。
完全な推測になってしまいますが(これはとても非効率的なのでもっと情報を書いてください)、
チェックボックスの値をスカラ変数$photo1 .. $photo109に格納しているとすれば、
条件指定が間違っていることになりますね。

あと、これだと$photo[0]もチェックしてますよ。
質問者 KTH  [削除]  投稿日 2004/5/18(火) 13:14:36
しあわせのツボさん、ご返信ありがとうございました。
詳細な説明をしていなくて、失礼しました。ごめんなさい。

お陰でなんとか解決しました。前のコード部分にて変数を$photo1...$photo109で設定していた
のではなく、$photo{1}...$photo{109}で設定しておりました。
そこで$photo[$i]を$photo{$i}にしたところ、実行できました。
アドバイスがなければ解決できませんでした。深く感謝いたします。

また何かありましたら、お手数で申し訳ございませんが、宜しくお願いします。

このページは終了したので返信(回答)は書きこめません
 


Web裏技