Javascriptをはじめ、Ajax、jQueryの著書多数のガイドが、何かと最近騒がれているJa…
北欧好きが、愛用の北欧モノを見せ合うコミュニティ
Javascript関連情報
更新日:2005年10月14日
今回は、XMLファイルからデータ読み込んでOPTION要素を書き換えます。ページ構築後に、読み込んで動的に書き換えます。

| win | mac | linux | |||||||||
| n7 | m1 | e6 | o7 | o8 | n7 | m1 | e5 | s1 | n7 | m1 | k3 |
| ○ | ○ | ○ | × | ○ | ○ | ○ | × | ○ | ○ | ○ | ○ |
<!-- Ajax簡易ライブラリ jslb_ajax.js
Toshiro Takahasi
http://jsgt.org/mt/archives/01/000409.html-->
<script languege = "JavaScript"
src = "./jslb_ajax037.js"
charset = "utf-8"></script>
<script language = "JavaScript">
<!--
//送信用関数
function loadFile(url)
{
sendRequest(on_loadedXML,'','POST',url,true,true)
}
//コールバック関数 ( 受信時に実行されます )
function on_loadedXML(oj)
{
//responseXMLでレスポンスを取得
var res = oj.responseXML
//OPTION書き換え作業用オブジェクト
resOj = new chgXMLtoHTMLOptions(res,document.test1.s0)
resOj.addOptions()
}
//読み込んだXMLのデータをもとにOPTIONを書き換えるメソッド(太字部分)を作成します
function chgXMLtoHTMLOptions(xdoc,oj){
return {
//XMLのitems,value,textを連想配列で返します
setItems : function (){
//XML内の"items"という名前のタグ(要素)の配列を作る
var items = xdoc.getElementsByTagName("items")
//XML内の都道府県名データ"ken"という名前のタグ(要素)の配列を作る
var ken = xdoc.getElementsByTagName("ken")
//XML内の経度データ"lon"という名前のタグ(要素)の配列を作る
var lon = xdoc.getElementsByTagName("lon")
//XML内の緯度データ"lat"という名前のタグ(要素)の配列を作る
var lat = xdoc.getElementsByTagName("lat")
return { 'items':items,'kens':ken,'lons':lon,'lats':lat };
},
//XMLのデータからオプションを生成します
addOptions : function (){
//すべてのオプションを削除します
this.delAllOptions(oj)
//XMLデータのオブジェクトを受け取ります
var data = this.setItems()
//"item"タグが出てきた順に処理します
for( i = 0 ; i < data.items.length ; i++ ){
var text = data.kens[i].firstChild.nodeValue
var value = data.lons[i].firstChild.nodeValue
+','+ data.lats[i].firstChild.nodeValue
oj.options[oj.length]=new Option(text,value)
}
},
//すべてのオプションを削除します
delAllOptions : function (oj){
var optionIndex = oj.options.length
for ( i=0 ; i <= optionIndex ; i++ ){
oj.options[0]=null
}
},
//optionが選択された時のダイアログを表示します
onselectedOption : function(oj){
var msg = oj.options[oj.selectedIndex].text+'が選択されました。県庁の?n'
+ '経度は、'+oj.options[oj.selectedIndex].value.split(',')[0]+'です?n'
+ '緯度は、'+oj.options[oj.selectedIndex].value.split(',')[1]+'です?n'
alert(msg)
}
}
}
//-->
</script>
<form name="test1">
<input type="button"
value="都道府県名リスト"
onclick="loadFile('ken.xml')"><br>
<select name="s0" size="5"
onchange="resOj.onselectedOption(this)">
<option selected> --ここへ読み込まれます--
</select>
</form>
<?xml version="1.0" encoding="utf-8" ?>
<lists>
<items>
<ken>北海道</ken>
<lon>141.35046</lon>
<lat>43.06197</lat>
</items>
<items>
<ken>青森県</ken>
<lon>140.74365</lon>
<lat>40.82178</lat>
</items>
<items>
<ken>秋田県</ken>
<lon>140.10626</lon>
<lat>39.71539</lat>
</items>
<items>
<ken>岩手県</ken>
<lon>141.15547</lon>
<lat>39.70096</lat>
</items>
<items>
<ken>山形県</ken>
<lon>140.36452</lon>
<lat>38.23758</lat>
</items>
<items>
<ken>宮城県</ken>
<lon>140.87549</lon>
<lat>38.26594</lat>
</items>
<items>
<ken>福島県</ken>
<lon>140.47157</lon>
<lat>37.74733</lat>
</items>
<items>
<ken>新潟県</ken>
<lon>139.02640</lon>
<lat>37.89942</lat>
</items>
<items>
<ken>東京都</ken>
<lon>139.69487</lon>
<lat>35.68627</lat>
</items>
:
:
人気Javascriptランキング
Powered by 価格.com
北欧好きが、愛用の北欧モノを見せ合うコミュニティ