JavaScriptを勉強し始めてまだ1ヵ月の初心者です。
どうしても分からず先に進めません。どうか、教えて下さい。
よろしくお願い致します。
下記の文字列を配列や連想配列などを使用して、二段構えのセレクトメニューを作成したいのです。
ちなみに、PHPでHIDDENを使用して文字列をセットしています。
A0,0001,あああ,A0,0002,いいい,B0,1111,かかか,
B0,1112,ききき,B0,1113,くくく,C0,1500,さささ…
このような文字列を使用し、「A0,0001,あああ」が1レコードのイメージです。
一つ目のセレクトメニューで、頭のA0,B0,C0…を選択し、さらに二つ目のセレクトメニューでは、
一つ目で選択したものによって選択されたものの後半部分がそれぞれメニューに表示されるようにしたいのです。
自分なりにいろんなサイトや書籍で調べてみたのですが、分かりませんでした。
質問の内容も分かり難いかと思いますが、どうぞ宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
とりあえず以下のような形で動くとおもいますが、
PHPで組んでいるなら明らかにPHP側で処理をしたほうが
確実です。
<script language="javascript">
window.onload=function(){
str=document.getElementById("data").value;
list1=str.split(",");
list2=new Object();
for(var i=0;i<list1.length;i+=3){
str2=list1[i];
if(typeof list2[str2]=="undefined") list2[str2]=new Array();
list2len=list2[str2].length
list2[str2][list2len]=new Object();
list2[str2][list2len].value=list1[i+1]
list2[str2][list2len].text =list1[i+2]
}
var menu1="<select onChange='setMenu2(this)'>";
menu1+="<option value=''>選択してください</option>"
for(var i in list2){
menu1+="<option value='"+i+"'>"+i+"</option>";
}
menu1+="</select>";
document.getElementById("menu1").innerHTML=menu1
}
function setMenu2(obj){
var v=obj.value
var menu2="<select onChange='alert(this.value)'>";
menu2+="<option value=''>選択してください"
for(var i=0;i<list2[v].length;i++){
menu2+="<option value='"+list2[v][i].value+"'>"+list2[v][i].text;
}
menu2+="</select>";
document.getElementById("menu2").innerHTML=menu2
}
</script>
<form>
<input type="hidden" id="data" value="A0,0001,あああ,A0,0002,いいい,B0,1111,かかか,B0,1112,ききき,B0,1113,くくく,C0,1500,さささ">
<div id="menu1"></div>
<div id="menu2"><select><option>選択してください</option></select></div>
</form>
詳しい解説ありがとうございます!!
無事動作いたしました。
教えて頂いた方法があるなんてとても勉強になりました。
差し支えなければ今後のためにPHP側の処理の方法を教えてもらいたいのですが、よろしければお願いいたします。
本当にありがとうございました。
No.1
- 回答日時:
セレクトメニューを絞り込むようなものは、何回か質問に挙がっています。
手前味噌ですが、以下が参考になるかもしれません。
http://okwave.jp/qa1469713.html
参考URL:http://okwave.jp/qa1469713.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptで同じような処理を...
-
RemiseCartの商品の管理画面を...
-
CGIフォームでのformタグとjava...
-
JQuery selectが反映されない
-
現在時刻を取得してフォームのs...
-
int select(int n, fd_set *rea...
-
selectメニューの初期選択値
-
解決法をご教示下さい。
-
1つのページにformを2つ設置。2...
-
onchangeイベントを強制的に発...
-
このjavascriptがわかりません
-
onClickとsubmitの処理順序
-
新しくフォルダを作成したい
-
javascriptで二重送信防止
-
JavaScript Form OPTION value
-
テキストの背景色を変える。
-
2次元配列で2項目についてソー...
-
ラジオボタンの値でリンク先を...
-
マウスをブラウザの外に出した...
-
JavaScriptで特定のtdタグにcla...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウン 項目が多いので先頭...
-
Selectボックスの幅を自動で広...
-
CSVファイルを読みこみ、プルダ...
-
jQuery セレクトボックスで選択...
-
JQuery selectが反映されない
-
selectメニューのselectedの位...
-
onFocusOutが複数回呼ばれる!
-
フォームのメニューリストを外...
-
セレクトを全て選択されていな...
-
現在時刻を取得してフォームのs...
-
Selectの中身をfor文で入れる
-
javascriptでselectボックスの<...
-
html selectの内容を初期値に戻す
-
ブラウザの戻るボタンを押した...
-
プルダウンで現在の年月日を取...
-
リストボックスの項目の順番を...
-
プルダウンとテキストの連動
-
<textarea>にプルダウンを表示...
-
DBの値を利用して、3つの連動し...
-
UWSCのIE操作でプルダウンを選...
おすすめ情報