- ベストアンサー
チェックBOXにチェックを入れた数に応じてジャンプするページを変えるスクリプト?
ある質問に該当する場合、チェックBOXに チェックを入れて、その合計数に応じて、 ボタンを押したとき、ジャンプするページを かえるようにすることができるスクリプトって ありますか??? そんなのないですかね?? ありましたら、是非、教えてくださいませ。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>チェックBOXは、htmlに記述してよいのでしょか? はい。 >その場合、cgi-binに入れる上記のスクリプトには、 どのようにチェックBOXが複数あるその「html」の 場所及び、チェックBOXのそれぞれの「name」を 教えてあげたらよいのでしょうか?? サンプルはHTMLが次のように記述されている場合のサンプルです。 つまりhtmlの方からCGIに送信します。 CGIでは送信されてきた項目のうち、@names= で指定された項目の数を数えて、%urlsに指定されたurlに移動します。 HTML側の記述例 <form action="cgiのurl"> A:<input type="checkbox" name="chk1"> B:<input type="checkbox" name="chk2"> C:<input type="checkbox" name="chk3"> D:<input type="checkbox" name="chk4"> <input type="submit" value="送信"> </form>
その他の回答 (1)
- steel_gray
- ベストアンサー率66% (1052/1578)
配布されてるかどうかはわかりません。 そういう機能ならjavascriptでも十分な気もするし。 CGI(Perl)なら下記のような感じで。 ===ここから=== #!/usr/bin/perl @names = qw(chk1 chk2 chk3 chk4); # 個数をカウントするチェックボックスのnameのリスト %urls = ( 0 => 'http://www.google.co.jp/', 3 => 'http://www.yahoo.co.jp/', 1000 => 'http://www.goo.ne.jp/', ); # 個数ごとのジャンプ先のリスト # 個数(以下) => 'ジャンプ先' use CGI; $CGI::POST_MAX=1024 * 100; $CGI::DISABLE_UPLOADS = 1; $q = new CGI; $count = 0; foreach (@names) { $count++ if($q->param($_)); } foreach (sort {$a <=> $b}keys %urls) { if($count <= $_) { print "Location:".$urls{$_}."\n\n"; last; } } ===ここまで====
お礼
どうも大変有難うございます!! まさか、この場で、スクリプトを書いていただける なんて・・・思ってもみませんでしたっ 感謝感激です! もちろん、無償でいいんですよねっ?(^^;)> それでは、さっそく使わせていただきます。 本当に有難うございました! 感謝
補足
すみません。いざCGIを構想に合うように変更する 段階になって、分からなくなってしまいました。 恐れ入りますが、アドバイス願います。 チェックBOXは、htmlに記述してよいのでしょか? その場合、cgi-binに入れる上記のスクリプトには、 どのようにチェックBOXが複数あるその「html」の 場所及び、チェックBOXのそれぞれの「name」を 教えてあげたらよいのでしょうか??
お礼
なるほど。<form>タグですね すっかり忘れていました・・・ 最近、全くご無沙汰していましたので・・・ まぁ、もともと、Perlの書式なんて全然知らないんですがね・・・(笑) どうも懇切・親切に有難うございました。 本当に感謝です・・・ かなり思い出してきました・・・ それでは、失礼致します。
補足
どうも有難うございました。 試してみましたが、大成功でした。 20pointどころか100pointですっ!! steel_grayさんは、すごいです!! ではでは。 本当にどうも有難うございます。