• 締切済み

条件で分岐させるJavaScriptか、CGIを教えてください。

ホームページで、 1ページに3つの問題があり、それぞれに3つの選択肢がある条件文が3ページあります。 これを1ページごとに選択していくと1ページで3×3×3=27で3ページなので27××27×27=19683通りの場合がありますが、このそれぞれの場合ごとに異なるページへ飛ばしたいのです。これを実現するあるいはこれにちかいJavaScript、あるいはcgiあるいはプログラミングで、フリーなもの教えてください。よろしいくお願いいたします。

  • akira
  • お礼率20% (2/10)
  • Java
  • 回答数2
  • ありがとう数14

みんなの回答

  • ssr-y6
  • ベストアンサー率71% (5/7)
回答No.2

それっぽいサーブレットを作ってみました。 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class jumppage extends HttpServlet { private String ITS(int n) { return(Integer.toString(n)); }; private PrintWriter PW; private void PL(String s) { PW.println(s); }; private void HD(int a, String b) { PL("<input type='hidden' name='Pa" + ITS(a) + "' value='" + b + "'>"); }; public void doGet(HttpServletRequest req, HttpServletResponse res) { String Pa2, Pa3, s; int Sn, Pg, i, j; try { Pg = 0; if ((req.getParameter("Pa1")) != null) Pg = 1; if ((Pa2 = req.getParameter("Pa2")) != null) Pg = 2; if ((Pa3 = req.getParameter("Pa3")) != null) Pg = 3; Sn = 0; for (i = 0; i < 3; i ++) { Sn *= 3; if ((s = req.getParameter("S" + ITS(i))) != null) Sn += Integer.parseInt(s); }; if (Pg == 3) { res.sendRedirect("http://okwave.jp/qa" + ITS(Integer.parseInt(Pa2) * 729 + Integer.parseInt(Pa3) * 27 + Sn + 10000) + ".html"); return; }; res.setContentType("text/html"); PW = res.getWriter(); PL("<html>"); PL("<head></head>"); PL("<body>Page" + ITS(Pg + 1) + "<br>"); PL("<form action='http://localhost:8080/minnaservlet/3256'>"); HD(1, "0"); if (Pg == 1) HD(2, ITS(Sn)); else if (Pg == 2) { HD(2, Pa2); HD(3, ITS(Sn)); }; for (i = 0; i < 3; i ++) { PL("<br>Select" + ITS(i)); for (j = 0; j < 3; j ++) PL("<input type='radio' name='S" + ITS(i) + "' value='" + ITS(j) + "'>"); }; PL("<br><input type='submit' value='next'></form></body></html>"); } catch (Exception ex) { System.out.println(ex.toString()+ "::Get"); }; }; }

回答No.1

一般的すぎて申し訳ないですが、こういう多数のデータを結び付けて処理するのは、 「データベース管理ソフト」にやらせるお仕事なのではないでしょうか。

関連するQ&A

  • CGI内での条件分岐について教えてください。

    CGI内での条件分岐について教えてください。 買い物カートCGIの中で下記のラジオボタンの選択において入力フォームを表示・非表示に切り替える質問をしたばかりですが、 <input type="radio" value="1" onclick="func1()" name="gift" checked />1ヶ所 <input type="radio" value="2" onclick="func2()" name="gift" />3ヶ所 <input type="radio" value="3" onclick="func3()" name="gift" />5ヶ所 今度は入力後の確認画面にて上記で選択された内容によって。。。 value1の場合は1ヶ所分の発送先住所、value2の場合は3ヶ所分の発送先住所・・・ と言った感じで表示をさせたいのですが、条件分岐に関してどのようにしたら良いのか分からず質問をさせて頂きます。 require "cgi-lib.pl"; ReadParse(*input_data); if ($input_data{'gift'} eq "1") {  ※value1で入力した1件分の発送先住所 } elsif ($input_data{'gift'} eq "2") {  ※value2で入力した3件分の発送先住所 } else {  ※value3で入力した5件分の発送先住所 } とか、試してみましたがだめでした(泣 CGI(Perl)に関しては初心者的で少々初心者レベルで触る程度の技術レベルです(汗 どうしたら良いのか教えてください。 思い当たる点は、そもそも条件式の中にある"gift"はどこかで指示を出さないとCGIの中で認識されていないのでは?とも思っています。 実際に上記の例でカートの確認ページを表示すると、 if ( eq "1") { } else ( eq "2") { } else { } と表示されるので素人ながらそう思いました。 質問がへたですが宜しくお願いします。

  • 条件分岐のCGIサンプル

    CGIのプログラミング超初心者です。 「○○度チェック」のようなサイトを作成したいと思っています。 (4~5問程度の質問を用意し、「はい」か「いいえ」を選択して進んでいくようなもの) どこかに無料でダウンロードできるサンプルはないでしょうか? 以前、メール問い合わせフォームを 無料ダウンロードできるサンプルコードを使用して作成した経験があります。 よろしくお願いいたします!

    • ベストアンサー
    • CGI
  • 【JS】htmlの特定要素内で条件分岐を行いたい

    form等の特定のhtml要素を、同じページ内に複数設置する際、それぞれの挙動をJavaScriptによって管理したいと思っています。そのための条件分岐がJavaScriptで実現できるなら、たとえばどのような方法でそれが行えるのか教えていただけませんか。 よろしくお願いします。

  • CGIファイル に JavaScript

    CGIのファイルにJavaScriptを書き込んでも 問題はないでしょうか? CGIのファイルを開きますとHTMLの部分がありまして、 そこにJavaScriptを付け足したいのですが、 それは可能でしょうか。 実行すれば分かることだと思うのですが、 自分自身はプログラムの技術がなく分からないもので。 人から質問されて困っています。 すみませんが、よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • javascriptによる条件分岐についてご質問で

    当方、javascriptに関してはほとんど無知のため お教えいただければと思っているのですが、 行いたいことは、以下のとおりです。 まずラジオボタンでA・Bのいずれかを選択します。 その後、テキストエリアにこちらが指定したコード(キャンペーンコードみたいなもの) を入力してもらいます。 ラジオボタンで選択したものと入力コードの 組み合わせによって、送信先(リンク先)が変更する といったようなフォームをつくりたいとおもっているのですが こういうフォームはjavascriptでも実装可能でしょうか? この質問コーナーも初めて使うので、もし無礼あれば申しつけください。 皆様、よろしくお願い致します。

  • CGIでJavaScript

    今自作の管理ページを作っているのですが、ある部分で詰まってしまってしまいました(^^; プルダウンメニューを付け加えるコードがありますよね? <SELECT NAME=menu> <OPTION VALUE=$i>$name</OPTION> </SELECT> ↑これです プルダウンメニューから項目を選ぶ時、今どの項目が選択されているかをプログラム側で判断することはできないでしょうか? 今のところVALUE値に0~Nの値を設定して、QUERY_STRINGから値を取り出し、そこから判定させているのですが、これだと一々メッセージとして飛ばしてやらないと判定できませんよね?(できれば更新しないで反映させたいのです) そこで、項目を選択した瞬間に今どの項目が選択されているのか(selectedIndexを使うのでしょうか?)をプログラム側に渡したいのです。(項目番号だけでいいので) JavaScriptの中で$aなど変数を設定してもどうもうまく代入してくれませんでした。 その時のコードは、 function change(){ $a = form.select.selectedIndex; } です。 それともう一つ、CGIの場合、リアルタイムに処理をすることはできるのでしょうか? 掲示板など、投稿ボタンを押すとページが更新されて、メッセージが追加されます。 上記のプルダウンメニューを選択した瞬間にいろんな処理(JavaScriptではなくPerlで)をさせることは可能でしょうか? かなりわかりにくい文章になってしまいましたが、 どなたか、わかる方レスお願いしますm(__)m

    • ベストアンサー
    • Perl
  • JavaScript の条件分岐?について

    メールフォーム内でドロップダウンメニューを使用しており 確認/修正等でフォーム画面に戻った時に選択されていた項目が 保持されるような設定で以下のような HTML 及び JavaScript を記述してます。 ( 実際には HTML 内で部分的に php echo を使用しております ) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>テスト</title> </head> <body> /* **************************************************************** 確認/修正等でフォーム画面に戻った時に入力した情報が消えない設定 ドロップダウンリスト用 **************************************************************** */ function MenuValue($v,$r) { if(!empty($_POST[$v])) { if($_POST[$v] == $r){ return " selected='selected'"; } } } <pre> お問い合わせ内容のカテゴリ <select name="menu" id="menu"> <option value="未選択" selected>▼選択して下さい</option> <option value="ミカン">ミカン</option> <option value="リンゴ">リンゴ</option> <option value="イチゴ">イチゴ</option> <option value="バナナ">バナナ</option> <option value="その他">その他</option> </select> </pre> </body> </html> 上記ソースでブラウザ上で動作テストしますと ドロップダウンリスト内の項目を何も選択しなかった場合 FireFox Validator では 【 エラー: duplicate specification of attribute "SELECTED" 】 となってしまいます。 その時ブラウザ上で表示されてるページの HTML ソースを確認すると・・・ <pre> お問い合わせ内容のカテゴリ <select name="menu" id="menu"> <option value="未選択" selected selected='selected'>▼選択して下さい</option> <option value="ミカン">ミカン</option> <option value="リンゴ">リンゴ</option> <option value="イチゴ">イチゴ</option> <option value="バナナ">バナナ</option> <option value="その他">その他</option> </select> </pre> となっております。 未選択以外の項目を選択した場合はエラーは出ません。 なので Select属性 を外してみると FireFox Validator でのエラーは解消されますが Another HTML-lint gateway では 【 どの <OPTION> にも SELECTED属性 が指定されていません 】 と言われてしまうので SELECTED属性 は外したくありませんし・・・ 前出の JavaScript の条件付けを色々と変更して試してますが当方 JavaScript はあまり詳しくないのでどなたかご教授頂ければと思い 質問投稿させて頂きました。 どなたかご回答よろしくお願い致します。

  • 初めまして、CGI(DataBase)とJavaScriptを組み合わ

    初めまして、CGI(DataBase)とJavaScriptを組み合わせてサイトを作りたいと思い試行錯誤しています。 質問の内容はDataBase(cgi)に登録するとユーザー名とメールアドレスがcookieに書き込まれるのでトップページにアクセスしたらJavaScriptでユーザー名を表示させることは可能でしょうか? 可能ならどうしたら良いのかアドバイスを頂けないでしょうか? どうか宜しくお願い致します。

  • JavaScriptでCGIの呼出し・・・???

    独学でプログラミングを始め、最近ではWeb系の勉強を始めました。 JavaScriptという言語とHTMLの勉強をしています。 そこで、どうしてもわからない事があります。 色々とネットで検索をしてみたのですが、私の理解力がないのか回答を見つけることができません。 どうか教えてください。 JavaScriptで他のサーバにあるCGIにデータを渡す方法です。 JavaScriptでHTMLの「Get」や「Post」のような機能があれば、できるのではないか、と考えたのですが、リファレンスを見ても、「Get」や「Post」はありませんでした。 JavaScriptにはそのような機能はないのでしょうか? Ajaxという機能があるようなのですが、その機能を使うしか方法はないのでしょうか? Ajaxも勉強したいと思っているので、方法があれば、ぜひ教えてください。

  • 毎日明け方4時にCGIを動かすJavaScript

    表題の通りです。 毎日明け方4時に同じCGIプログラムを動かしたいのですが、どうすれば良いのかわからないので、調べてみたら、毎日同じ時間にCGIを実行させるJavaScriptを仕込んだWebページをアップしておいたら・・・というのがありました。 しかし具体的にこんなコードとまで書いてなかったので、質問をあげました。 どんなコーディングになるのでしょう。