プロが教える店舗&オフィスのセキュリティ対策術

2つのプルダウンの連動に関して

javascript の話になってしまうかと思われますが、教えて下さい。

2つのプルダウンを連動させたいと考えていますが、単純に決められた項目を初期値として
設定するようなプルダウンであれば問題なくできますが、テーブルから取得したデータをプルダウン
にセットした後に制御を掛けたいと考えています。

以下のようなソースを活用できないか?と考えていますが、どのような方法があるでしょうか。。。。

《活用ソース》

<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE=JavaScript>
<!--
function funcSubmit() {
if (document.formMain.pref.selectedIndex == 0 && document.formMain.city.selectedIndex == 0) {
window.alert("都道府県と市町村を選択してください");
return false;
} else {
return true;
}
}
function funcMain(b) {
if (document.formMain.pref.selectedIndex == 0) {
document.formMain.city.length = 1;
document.formMain.city.selectedIndex = 0;
} else {
if (b) {
document.formMain.city.length = 1;
document.formMain.city.selectedIndex = 0;
}
var city = cities[document.formMain.pref.selectedIndex - 1];
document.formMain.city.length = city.length + 1;
for (var i = 0; i < city.length; i++) {
document.formMain.city.options[i + 1].value = i;
document.formMain.city.options[i + 1].text = city[i];
}
}
}

↓↓↓↓ ※これらの情報をテーブルから取得したデータとしたい。↓↓↓↓ 

var prefs = new Array("東京都", "大阪府", "愛知県", "千葉県");  
var cities = new Array();
cities[0] = new Array("小平市", "町田市", "三鷹市");
cities[1] = new Array("大阪市", "豊中市");
cities[2] = new Array("名古屋市", "半田市");
cities[3] = new Array("千葉市", "市川市", "柏市");
// -->
</SCRIPT>
</HEAD>
<BODY onLoad="funcMain(false)">
<FORM NAME=formMain METHOD=POST ACTION=result.asp onSubmit="return funcSubmit()">
<SELECT NAME="pref" onChange="funcMain(true)">
<OPTION VALUE="" SELECTED>(都道府県を選択してください)
<OPTION VALUE="0">東京都
<OPTION VALUE="1">大阪府
<OPTION VALUE="2">愛知県
<OPTION VALUE="3">千葉県
</SELECT>
<SELECT NAME="city">
<OPTION VALUE="" SELECTED>(市町村を選択してください)
<OPTION VALUE="">
<OPTION VALUE="">
<OPTION VALUE="">
<OPTION VALUE="">
<OPTION VALUE="">
<OPTION VALUE="">
<OPTION VALUE="">
</SELECT>
<INPUT TYPE=submit VALUE="登録">
</FORM>
</BODY>
</HTML>

A 回答 (1件)

多分大阪を選んだら市町村のプルダウンに大阪分を、東京を選んだらその市町村をプルダウンに配置したいのだと思いますが、あってるのかな?



その場合はページをDOM管理して都道府県のプルダウンが選択されたら、AJAXで市町村分のデータを受け取り、DOMでプルダウンの項目を書き換えるのが自然だと思います。

ただし、AJAXやDOM管理には色々な知識が必要ですし、手間もかかります。もし、質問にある項目数の程度なら、全てページに埋め込みjavascriptで管理するほうが楽かもしれませんね。
なので、多分PHPの質問というよりAJAXやDOMに詳しい人に聞くほうが答えが早く見つかるのかも。

答えになってなく不安ですが・・・
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!