■ マルチセレクト・都道府県バージョン ■

汎用性のある都道府県連動・市/郡セレクタです。

第1項目で選択されたOPTIONに連動して第2項目が変更されます。
JavaScriptがOFFの場合には第2項目の表示が変わらないので
メッセージが表示するようにしています。

onloadのform_init()関数の引数は、

第1:form名
第2:都道府県のselect名(element名)
第3:市・郡のselect名(element名)
第4:DIVのID(Ver2.0で追加)
第5:valueフラグ


第5のValueフラグは"0"で「都道府県・市/郡」の名称そのまま、"1"で該当コードになります。
(余談ですが、フラグ=1では無線などで地域を表すJCC/JCGコードそのものです。)

外部スクリプト"jccgdata.js(20471B)にスクリプトを集約しているので汎用的に使用できます。
JavaScriptでのvalueの取得の仕方はこのページのスクリプトを参考にして下さい。

※都道府県・市・郡の名称やコード、その他で間違いやおかしいところが有りましたらお知らせ下さい。

IE5.0、NN4.7、NN6.0、OPERA6.0以上で動作
(※NN4.7,OPERA6.0では空白リストが含まれます)

都道府県    市・郡 



項目指定が完了したら確認ボタンを押して下さい。

こっちのボタンはページが変わります。フラグ=0では文字は全角になりません。



■次のページへ進んだ後、「戻る」ボタンで戻った場合でも選択状態を保持するには?■
cookieを利用して「戻る」ボタンで戻った場合でも選択した状態を保持する事が出来ます。
以下のスクリプトを追加して下さい。(外部スクリプトの変更はありません)
★このページにある関数スクリプト(function send(){ })の次に以下を追加します。

function getcookie(){
   cookie_name = 'select_data='; 
   cookie_string=document.cookie+';'; 
   start_position=cookie_string.indexOf(cookie_name,0); 
   if (start_position!=-1) { 
      end_position=cookie_string.indexOf(';',start_position); 
      key_str = unescape(cookie_string.substring(start_position+cookie_name.length,end_position));
      sp_key = key_str.split(":");
      sp_key[0] *= 1;
      sp_key[1] *= 1;
      document.forms[form_name].elements[select_name1].options[sp_key[0]].selected = true;
      chang_option();
      document.forms[form_name].elements[select_name2].options[sp_key[1]].selected = true;
      document.cookie="select_data=;expires=Thu, 01-Jan-70 00:00:01 GMT";
      return true;
   } 
} 
function setCookie(){
   key_str  = document.forms[form_name].elements[select_name1].selectedIndex;
   key_str += ":"+document.forms[form_name].elements[select_name2].selectedIndex;
   exptime = new Date();
   exptime.setTime(exptime.getTime()+60*60*1000); // "1000"の値はcookieの有効時間(この場合1時間)
   data_set = "select_data="+escape(key_str)+";expires=" + exptime.toGMTString() + ";";
   document.cookie=data_set;
   return true;
}


★<BODY>内のonloadの関数を以下のように追記します。
<BODY onLoad="form_init('form1','level1','level2','sel2',0);getcookie();" bgcolor=white>

★form の部分にも関数を追記します。
<form name="form1" method="get" action="dummy.cgi" onsubmit="setCookie();">

■動作説明
スクリプトは、まずcookieにデータがあるかどうかを調べます。なければ何の処理もせず関数を終了します。
データが見つかった場合はoptionの該当する部分をselected(選択状態)にします。そしてcookieデータを消去します。
「送信」時には選択されたデータを新たにcookieへ保存します。

尚、次のページにサンプルを置いていますので参照して下さい。
cookieを利用したサンプル

2002/01/28 初期バージョン
2002/04/05 OPTIONの空白部分を出力しないよう変更
2002/10/14 Mac版IE5でのエラーを修正,NN4.7及びOPERA6.0でも動作するように修正
2003/06/22 cookieを利用して選択状態を保持するスクリプトを追加
Homeへ


Author Hiyoko (c)2002/01/28 update 2003/06/22