![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
WEB上でアンケートを行い、その結果で飛び先が変わるページを作りたいと思います。
CGIではなくJavascriptで動かしたいのですが、あまり詳しくありません。原理を教えてもらってもちょっと。。なので、サンプルソースが欲しいのですがどうもみつかりません。
どなたか教えて欲しいです。お願いします!
■作りたいものの概要
アンケートは設問は二問。それぞれYorNの二択で、ラジオボタンで選択させます。
選択後、[結果]ボタンを押すと結果に応じたページが表示されます。
また、結果のパターンはYY,YN,NY,NNの四つのみで、YNとNYは別物と考えます。
※ラジオボタンはデフォルトでYが選択されている。
■その例;
設問1:あなたは●●ですか?
はい いいえ
設問2:あなたは▼▼ですか?
はい いいえ
[結果]
---------------
それぞれの結果ごとの飛び先をA.html, B.html, C.html, D.htmlとします。
No.2ベストアンサー
- 回答日時:
下記のHTMLで希望の動作をします。
(IE5.5、NN4.7、NN6.2 動作確認済み)<HTML>
<HEAD>
<TITLE>アンケート</TITLE>
<SCRIPT language="JavaScript"><!--
var page = new Array();
page['YY'] = 'A.html';
page['YN'] = 'B.html';
page['NY'] = 'C.html';
page['NN'] = 'D.html';
function branch(f) {
var ans = '';
for (var i = 0; i < f.q1.length; i++) {
if (f.q1[i].checked) ans+=f.q1[i].value;
}
for (var i = 0; i < f.q2.length; i++) {
if (f.q2[i].checked) ans+=f.q2[i].value;
}
location.href = page[ans];
return false;
}
//--></SCRIPT>
</HEAD>
<BODY>
<FORM name="enquete" onSubmit="return branch(this)">
設問1:あなたは●●ですか?<BR>
<INPUT type="radio" name="q1" value="Y" checked>はい
<INPUT type="radio" name="q1" value="N">いいえ<BR>
設問1:あなたは▼▼ですか?<BR>
<INPUT type="radio" name="q2" value="Y" checked>はい
<INPUT type="radio" name="q2" value="N">いいえ<BR>
<INPUT type="submit" value="送信">
</FORM>
</BODY>
</HTML>
※見やすさのために全角スペースを入れています。コピーする際は、半角スペースかタブに変換して下さい。
※No.1のお礼より
> ファイルがひらかず再読込されるだけです。
これは、JavaScriptの定義関数から false を返していないために起こります。
FORMタグの「 onSubmit="return 関数" 」で呼び出す関数からは、false を返すことでFORMの送信動作をキャンセルさせることができます。(true を返せば送信します。)
(No.1の回答では、恐らく「 return false; 」を書き忘れたのでしょう。)
このようにしておけば、同じ画面に新しいページが表示されます。(open関数などを使う必要はありません。)
また、URLをフルパスで指定しても大丈夫です。
No.1
- 回答日時:
こんな感じでしょうか?
一応IEでは動作しますが、netscape系は動作が変です。
<HTML>
<HEAD>
<TITLE>さんぷる</TITLE>
<SCRIPT type="text/javascript">
varq1=1;
var q2=1;
function hantei(){
if(q1 == 1 && q2 == 1) {
location.href = "./A.html";
}
else if(q1 == 1 && q2 == 2) {
location.href = "./B.html";
}
else if(q1 == 2 && q2 == 1) {
location.href = "./C.html";
}
else if(q1 == "2" && q2 == "2") {
location.href = "./D.html";
}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM onsubmit="return hantei()">
設問1:あなたは●●ですか? <BR>
<INPUT TYPE="radio" VALUE="1" checked onclick="q1=1;">はい</INPUT>
<INPUT TYPE="radio" VALUE="2" onclick="q1=2;">いいえ</INPUT>
<BR>
設問2:あなたは▼▼ですか? <BR>
<INPUT TYPE="radio" VALUE="1" checked onclick="q2=1;">はい</INPUT>
<INPUT TYPE="radio" VALUE="2" onclick="q2=2;">いいえ</INPUT>
<BR>
<INPUT TYPE="SUBMIT" VALUE="結果"></INPUT>
</FORM>
</BODY>
</HTML>
NAMEを入れてみたところ、選択できるようになりました!
>TYPE="radio" NAME="Q1" VALUE="1" checked onclick="q1=1;">はい
location.href = "./C.html";
の部分ですが、PATHがあっているのに、ファイルを開けませんでした。
ファイルがひらかず再読込されるだけです。
また、最終的にはフルパスでURLを書きたいのですが、
window.open("full path URL")
だとうまくいったのですが、
同じ画面内でページを開くように
window.open("full path URL" , "_top");
としてみたのですが、NGでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
任意のinput要素同士の連動につ...
-
Jvasvriptのlengthで個数が取得...
-
データベースの値を判断してラ...
-
ポップアップウインドウで選択...
-
ラジオボタンのチェックが外れ...
-
javascriptを使ってラジオボタ...
-
フォーム入力チェックの効率の...
-
<JavaScript>tableタグを入力不...
-
<input>の選択肢をプルダウンメ...
-
至急!GetElementById でtdの...
-
return trueとreturn falseの用...
-
ハイパーリンクを別ウインドウ...
-
TD内のチェックボックスの位置...
-
コピペを禁止するtextarea
-
javascriptでセレクトボックス...
-
未入力のラジオボタンに、alert...
-
value内に変数を入れたい
-
ASP エラーチェック VBScript
-
onchangeイベントを強制的に発...
-
ボタン2回押しを無効にしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ラジオボタンにタブインデック...
-
ラジオボタンのチェックが外れ...
-
データベースの値を判断してラ...
-
ラジオボタンでdisabledとchecked
-
javascript作成してます。ラジ...
-
フォームPOST後「戻る」時のチ...
-
リンク文字クリックでラジオボ...
-
ラジオボタンの値でリンク先を...
-
ラジオボタンのチェック数に応...
-
ラジオボタンのValueを受け取り...
-
リセットボタンでクリアできな...
-
サイト内にGoogleサイトを表示...
-
アンダーバーのname値は取得で...
-
複数のラジオボタンのチェック
-
ラジオボタンを使った簡単なア...
-
ラジオボタンで選択した項目の...
-
Jvasvriptのlengthで個数が取得...
-
チェックボックスのON/OFFに連...
-
javascriptでクイズ
-
クイズの正解(○×)をテキスト...
おすすめ情報