いつも参考にさせて頂いています。
javascriptでセレクトメニューを作っているのですが
うまく出来ないのでどなたか教えて下さい。
宜しくおねがいします。
3連動するセレクトメニューで
3つ目のセレクトメニューを選ぶと
選ばれた項目に対応するURLに飛ぶように作っています。
ここからが質問なのですが、
ページに飛んだ時にセレクトメニューで選択した内容が消えてしまいます・・・
飛んだ先のページでも、選択した内容を表示させるには
どのようにすればいいのでしょうか?
ご存知の方がいましたら教えて下さい。
---html部分----
<html>
<head>
<script type="text/javascript" src="test.js"></script>
</head>
<body>
<form id="f0">
<select id="s0">
<option value="">----------------</option>
</select>
<select id="s1">
<option value="">----------------</option>
</select>
<select id="s2">
<option value="">----------------</option>
</select>
</form>
</body>
</html>
---外部javascriptファイル----
var data=
{
吉野家:
{
"牛丼(並)":{0:"380円"},
"牛丼(大盛)":{1:"480円"},
"牛丼(特盛)":{2:"630円"}
}
,松屋:
{
"牛丼(並)":{3:"320円"},
"牛丼(大盛り)":{4:"420円"},
"牛丼(特盛)":{5:"520円"}
}
,すき家:
{
"牛丼(並)":{6:"280円"},
"牛丼(大盛)":{7:"380円"},
"牛丼(特盛)":{8:"480円"}
};
window.onload=function(){
s0=document.getElementById("s0");
s1=document.getElementById("s1");
s2=document.getElementById("s2");
setSelect(data,s0);
s0.onchange=function(){
clearSelect(s2);
if(this.value==""){
clearSelect(s1);
}else{
setSelect(data[this.value],s1);
}
}
s1.onchange=function(){
if(this.value==""){
clearSelect(s2);
}else{
setSelect(data[s0.value][this.value],s2);
}
}
s2.onchange=function(){
location.href="/////////";
}
}
function setSelect(obj,sel){
while(lc=sel.lastChild){
sel.removeChild(lc);
};
var op=document.createElement("option");
op.setAttribute("value","");
op.appendChild(document.createTextNode("----------------"));
sel.appendChild(op);
for(var i in obj){
var txt=(typeof obj[i]=="object")?i:obj[i];
var op=document.createElement("option");
op.setAttribute("value",i);
op.appendChild(document.createTextNode(txt));
sel.appendChild(op);
}
}
function clearSelect(sel){
while(lc=sel.lastChild){
sel.removeChild(lc);
};
var op=document.createElement("option");
op.appendChild(document.createTextNode("----------------"));
sel.appendChild(op);
};
No.1ベストアンサー
- 回答日時:
静的なページは独立した存在であり、ページの移動によってメモリが消去されるので、その間のデータのやり取りをすることは基本的にはできません。
私ならCGIを使うか、面倒ならURLに渡してしまいます。
前者の場合、location.hrefを変更するのではなく、セレクトボックスを包含するフォームをサブミットして、別途CGIを用意して値を受け取って下さい。
CGIが使えない、若しくはそこまで大層なものでもない、というのであればURLに直接渡してしまうのも良いと思います。
URLは、末尾に?をつけるとそれ以降はデータとして扱うことになっています。
それを利用し、送信先のファイルがb.htmlならば、
b.html?セレクトボックス1の値&セレクトボックス2の値&セレクトボックス3の値
というURLを指定しておいて、受け取り側のファイルでonLoadイベント時に、location.hrefを参照して分解すれば3つの値が得られることになります。
分解のアルゴリズムは、
・データ←URLを?で分割、後者を取得
・データの配列←データを&で分割
でOKです。
どうでしょう、出来そうでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript 2段階プルダウンで1段階目の選択を終えた後に選択ボックスを見えなくしたい 2 2022/07/05 21:58
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プルダウン 項目が多いので先頭...
-
jspに組込んだJavaScript でjava文
-
セレクトの値を取得できない
-
CSVファイルを読みこみ、プルダ...
-
jQuery セレクトボックスで選択...
-
Selectの中身をfor文で入れる
-
html selectの内容を初期値に戻す
-
現在時刻を取得してフォームのs...
-
onFocusOutが複数回呼ばれる!
-
プルダウンとテキストの連動
-
selectメニューのselectedの位...
-
<textarea>にプルダウンを表示...
-
int select(int n, fd_set *rea...
-
HTMLコンボボックスへの項目追加
-
return trueとreturn falseの用...
-
テキストボックス入力を半角英...
-
【jQuery】input nameの文字列...
-
二つの入力欄に、同時に同じ文...
-
onchangeイベントを強制的に発...
-
<input>の選択肢をプルダウンメ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウン 項目が多いので先頭...
-
Selectボックスの幅を自動で広...
-
jQuery セレクトボックスで選択...
-
Selectの中身をfor文で入れる
-
html selectの内容を初期値に戻す
-
CSVファイルを読みこみ、プルダ...
-
JQuery selectが反映されない
-
セレクトの値を取得できない
-
セレクトを全て選択されていな...
-
セレクトメニューで選択された...
-
ブラウザの戻るボタンを押した...
-
javascriptでselectボックスの<...
-
リストボックスの項目の順番を...
-
現在時刻を取得してフォームのs...
-
onFocusOutが複数回呼ばれる!
-
セレクトボックスで現在選択さ...
-
【javascript・PHP】プルダウン...
-
document.form で nullまたは...
-
プルダウンで現在の年月日を取...
-
onchange等のイベントハンドラ...
おすすめ情報