NO.255393の方と少し似たような設問で恐縮です。
やっとHTMLを一通り理解し、現在少しずつJavaSkriptを勉強中です。
いくつかのイエス、ノーの質問を設けてその選択によって見せるページを変えるという風にしたいのですが、具体的に表すと、
え.html
あ.html 質問4< お.html
質問1< 質問3< 質問5<
質問2< う.html か.html
い.html
と、いった感じなのですが。(わかりにくかったらすみません)
「if confirm」の構文を繰り返して、「location.href」で各ページをロードするのは分かりますが、組み方が悪いのか、なかなかうまく作動しません。
どうか、ご教授願います。
No.2ベストアンサー
- 回答日時:
提示されている質問の流れでは、どの質問も、どちらかの選択肢がHTMLに直結しているので、次のような単純なロジックで実現できます。
(IE5.5、NN4.7、NN6.2 動作確認済み)<HTML>
<HEAD>
<TITLE>回答内容で分岐</TITLE>
<SCRIPT language="JavaScript"><!--
function ask() {
var page;
if (confirm("質問1") == true) page = "A.html";
else if (confirm("質問2") == false) page = "B.html";
else if (confirm("質問3") == false) page = "C.html";
else if (confirm("質問4") == true) page = "D.html";
else if (confirm("質問5") == true) page = "E.html";
else page = "F.html";
location.href = page;
}
//--></SCRIPT>
</HEAD>
<BODY onLoad="ask()"></BODY>
</HTML>
※HTML名が「あ.html」とかだと、NN4.7 でうまく動作しなかったため、英字に変えました。
これが、「質問1でYesを選ぶと質問2で、Noを選ぶと質問3」という具合だと、もう少し複雑になってきます。
さらに、「質問4でNoを選ぶと、質問1に戻る」など、複雑なロジックを組む場合、if 文の羅列では厳しくなります。
このようなケースも考慮に入れる場合、「質問文、Yesの時の処理、Noの時の処理」を1セットにして定義すると、簡単に質問の流れなどをコントロールすることができます。
(以下サンプル。IE5.5、NN4.7、NN6.2 動作確認済み)
<HTML>
<HEAD>
<TITLE>回答内容で分岐2</TITLE>
<SCRIPT language="JavaScript"><!--
var q = new Array(
// 質問文, Yesの処理, Noの処理(各処理には、HTML名か、次の質問番号を書く)
new Question("質問0", "A.html", 1),
new Question("質問1", 2, "B.html"),
new Question("質問2", 3, "C.html"),
new Question("質問3", "D.html", 4),
new Question("質問4", "E.html", "F.html")
);
// 質問文と、Yes/Noの処理をセットにする関数(オブジェクト生成)
function Question(m,y,n) {
this.message = m;
this.y = y;
this.n = n;
}
// 変数 q の定義通りに、質問 - 回答処理を行う関数
function ask() {
var req = 0;
while (1) {
// req には、次の質問番号か、HTML名が入る
req = confirm(q[req].message) ? q[req].y : q[req].n;
// req がHTML名(数値でない)なら、ループを抜ける
if (isNaN(req)) break;
}
location.href = req;
}
//--></SCRIPT>
</HEAD>
<BODY onLoad="ask()"></BODY>
</HTML>
※配列の都合で、質問は0からにしました。
※見やすさのため、ソースには全角スペースを入れていますので、コピーする際は半角スペースかタブに変換して下さい。
参考URL:http://tohoho.wakusei.ne.jp/js/index.htm
質問のような単純な(苦笑)例ばかりでなく、
応用的な内容の回答まで頂けて感謝しております!
ご紹介いただいたページも参考にして
leaz024さんのお教えいただいた内容を
少しずつ自分で消化していきたいと思います。
ありがとうございました。
No.1
- 回答日時:
こんばんわ!
-----------------------------------------------------------
aa=confirm("質問1の文章")
if(aa==false){
bb=confirm("質問2の文章")
if(bb==true){
cc=confirm("質問3の文章")
if(cc==tlue){
dd=confirm("質問4の文章")
if(dd==false){
ee=confirm("質問5の文章")
if(ee==true){location.href='か.html'}
else {location.href='お.html'} ;
}else {location.href='え.html'} ;
}else {location.href='う.html'} ;
}else {location.href='い.html'} ;
}else {location.href='あ.html'} ;
-----------------------------------------------------------
多分こんな感じになると思います。
質問より分岐するところで上に行く方を『true』下に行く方を『false』として
上のを作ってみましたが‥‥あってるかどうか試してないです(汗)
あと‥‥else の行の { } 要らないかもしれませんが。一応。
早速のご回答をありがとうございます!
まだmeke2さんの方法をそのままコピー&ペーストでは
いつまでたっても覚えられないので、
ゆっくりと構文を理解してから実際に試してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
URLを引数とし、フレーム間で渡...
-
子フレームの自動リロードは可...
-
同時にフレームの背景色を変える
-
他のフレームのスクリプトを実...
-
別フレームのページが読み込み...
-
異なるフレームから異なるフレ...
-
フレーム内リンクを禁止したい
-
フレームを介したrefferの取得方法
-
スマホ上で、左右スワイプで次...
-
2つのフレームに対して同時にリ...
-
javaとフレーム
-
エラー:書き込みができません ...
-
<a href="#" …>の意味を教えて...
-
SCRIPT5007: 未定義または NULL...
-
javascriptでのポップアップウ...
-
bodyにidをつける理由は何ですか?
-
JavascriptとJqueryを混在し記述
-
function の return 値を表示し...
-
相対パスと絶対パスの速度
-
プルダウンと入力を両方行う検...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スマホ上で、左右スワイプで次...
-
別フレームの中にあるインライ...
-
インラインフレームで表示され...
-
インラインフレームをドラッグ...
-
別ページのインラインフレーム...
-
別窓を共有したいのです。
-
子フレームの自動リロードは可...
-
親ウィンドウの別フレームを子...
-
<iframe>~</iframe>内のwindow...
-
submitボタンで他のフレームを...
-
プルダウンのフォーカス解放の方法
-
前のページのurlを取得するには?
-
フレームの同時変更
-
フレームの表示順序を制御したい
-
インラインフレームから別フレ...
-
フレームに関する制御、文書間...
-
フレームを跨ぐドロップダウン...
-
左右のフレームを同時にスクロ...
-
HTMLフォームボタンによるター...
-
フレームが入れ子状態です。フ...
おすすめ情報