• ベストアンサー

心理テストページをCGIで作りたいのですが…

CGI初心者(というより全くわかりませんが・・・)ですがどなたか教えていただけませんでしょうか?? チェックボックスのチェックされたの数によって、 ジャンプするページを変えるには、 どのようなプログラムを組めば良いのでしょうか? 例えば、 チェックが0~5個だと、Aページへジャンプ。 チェックが、6~10個だと、Bページへジャンプとか、 そういう感じです。 いろいろ調べていたらCGIというものを使えばできるようですが、全く知識が無く困っています(泣) HTMLならある程度は理解できます。 すみません、助言をよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • asx
  • ベストアンサー率50% (27/54)
回答No.2

前の方が書かれているように、CGIはHTMLとは別物ですので、初心者の方がゼロから作るのはちょっと難しいと思います。 ですが、 > チェックボックスのチェックされたの数によって、 > ジャンプするページを変えるには、 これだけでしたら、CGIを使用せずにJavaScriptのみで実現できます。 HTMLはある程度理解できるとのことですが、JavaScriptはどうでしょうか? 一応サンプルを掲載しておきます。(本来であればクロスブラウザ対策なども記述する必要がありますが…) ---------------------------------- <html> <head> <title>Sample</title> <script language="JavaScript"> <!-- function jump() { count = 0; for (var i=0;i<document.sampleform.elements["check"].length;i++){ if ((document.sampleform.elements[i].name == "check") && (document.sampleform.elements[i].checked)) { count ++; } } if (count == 0) { // 一つもチェックされていない場合 location.href("http://www.yahoo.co.jp"); } else if (count <= 3) { // チェックが3個以下の場合 location.href("http://www.google.co.jp"); } else { // チェックが4個以上の場合 location.href("http://www.msn.co.jp"); } } //--> </script> </head> <body> <form name="sampleform"> <input type="checkbox" name="check" value="A"> A<br> <input type="checkbox" name="check" value="B"> B<br> <input type="checkbox" name="check" value="C"> C<br> <input type="checkbox" name="check" value="D"> D<br> <input type="checkbox" name="check" value="E"> E<br> <input type="button" value="送信" onclick="jump();"> </form> </body> </html>

その他の回答 (1)

  • Stiltzkin
  • ベストアンサー率42% (119/283)
回答No.1

CGIというのは、WWWサーバがブラウザからの要求に応じてプログラムを起動するための「しくみ」のことで、CGIを利用して、「プログラム」を起動してやることになります。このプログラムを、自分のほしい機能や出力を実現するために作っていかなければなりません。比較的簡単で利用も多いのが「Perl」という言語ですが、このPerlもプログラム言語には違いないので、もしプログラミングの経験がないならかなりハードルは高い気がします。HTMLの知識だけでは実現できません。 PerlはWeb上でも解説しているサイトも多いので、例えば「Perl 入門」などのキーワードで検索すれば非常に丁寧に解説してくれているサイトも見つかると思います。また、フリーでCGIプログラムを配布しているサイトもたくさんありますので、もしかしたら似たようなプログラムが配布されているかもしれません。 mova_002さんが考えられているような機能は、言語の知識さえあればCGIで簡単に実現できる機能ではあります。がんばって勉強されてみてはどうでしょうか。

関連するQ&A