佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > XML卷之實(shí)戰(zhàn)錦囊(4):選單連動(dòng)

XML卷之實(shí)戰(zhàn)錦囊(4):選單連動(dòng)

熱門標(biāo)簽:服務(wù)器配置 檢查注冊表項(xiàng) 鐵路電話系統(tǒng) 智能手機(jī) 銀行業(yè)務(wù) 美圖手機(jī) 網(wǎng)站文章發(fā)布 呼叫中心市場需求

動(dòng)機(jī):
現(xiàn)在我們做個(gè)在IE里應(yīng)用XML的一個(gè)小例子:解決雙下拉選單的連動(dòng)問題。大家最常見的可能就是選取省份后改變城市選項(xiàng)的例子了,那我們就來嘗試著用XML來完成吧。

以前介紹的一些功能我是直接用XML+XSL文件來完成的,大家可能還不是很熟悉它的用法,所以我這次就用HMTL+XML來做,希望能夠讓大家更清楚的了解--“XML原來可以如此簡單!”:)


材料:
XML卷之選單連動(dòng)
有2個(gè)文件:Citys.xml 和 CitySelect.htm

作用:
選擇省份后可以自動(dòng)顯示相對(duì)應(yīng)的城市,這樣方便用戶,有效的提高數(shù)據(jù)互動(dòng),讓自己的頁面更加絢麗多彩。 
效果:
瀏覽這里 
代碼:
Citys.xml
?xml version="1.0" encoding="gb2312"?>
China>
  State id="1" name="江西">
    City>九江/City>
    City>南昌/City>
    City>廬山/City>
    City>景德鎮(zhèn)/City>
  /State>
  State id="2" name="北京">
    City>北京西/City>
    City>居庸關(guān)/City>
    City>清華園/City>
    City>周口店/City>
  /State>
  State id="3" name="福建">
    City>福州/City>
    City>廈門/City>
    City>漳州/City>
  /State>
  State id="4" name="甘肅">
    City>蘭州/City>
    City>洛門/City>
    City>嘉峪關(guān)/City>
  /State>
  State id="5" name="廣東">
    City>廣州/City>
    City>深圳/City>
    City>東莞/City>
    City>石牌/City>
  /State>
  State id="6" name="安徽">
    City>合肥/City>
    City>黃山/City>
    City>九龍崗/City>
    City>馬鞍山/City>
  /State>
/China>

CitySelect.htm

自定義函數(shù):ChooseState
(讀取XML數(shù)據(jù)中的省的名稱,并增加到SelState的下拉列表中)

function ChooseState()
{
  var source;
  var sourceName = "Citys.xml";
  var source = new ActiveXObject('Microsoft.XMLDOM');   //創(chuàng)建一個(gè) MSXML解析器實(shí)例
  source.async = false;
  source.load(sourceName);   //裝入XML文檔
  root = source.documentElement;   //設(shè)置文檔元素為根節(jié)點(diǎn)元素
  sortField=root.selectNodes("http://@name");   //搜索屬性中含有name的所有節(jié)點(diǎn)
  for(var i=0;isortField.length;++i)   //增加省份名稱到下拉列表
  {
    var oOption = document.createElement('OPTION');
    oOption.text = " "+sortField[i].text+" ";
    oOption.value = sortField[i].text;
     form1.SelState.options.add(oOption);
  }
   ChooseCity();
}

自定義函數(shù):ChooseCity
(根據(jù)當(dāng)前選定的省名來讀取XML數(shù)據(jù)中的對(duì)應(yīng)城市名稱,并增加到SelCity 的下拉列表中)
function ChooseCity()
{
  x=form1.SelState.selectedIndex;   //讀取省份下拉框的當(dāng)前選項(xiàng)
  y=form1.SelState.options[x].value;
  sortField=root.selectNodes("http://State[@name='"+y+"']/Cityq uot;);   //搜索name屬性值等于
參數(shù)y的State節(jié)點(diǎn)下的所有city節(jié)點(diǎn)
  for(var i=form1.SelCity.options.length-1;i>=0;--i)   //撤消原來的列表項(xiàng)
  {
    form1.SelCity.options.remove(i)
  }
  for(var i=0;isortField.length;++i)   //增加城市名稱到下拉列表
  {
    var oOption = document.createElement('OPTION');
    oOption.text = " "+sortField[i].text+" ";
    oOption.value = sortField[i].text;
    form1.SelCity.options.add(oOption);
  }
}
 

表單源碼
BODY onLoad="ChooseState()">
FORM action="" method="post" id="form1" name="form1">
SELECT name="SelState" id="SelState" onchange="ChooseCity()" >
/SELECT>
SELECT name="SelCity" id="SelCity" >
/SELECT>
/FORM>
/BODY>

后記:
剛開始學(xué)XML的時(shí)候,我也有著和大家一樣的迷惑 --- “XML我是學(xué)了,可究竟這XML應(yīng)該怎么用呢?”這個(gè)問題阻難了我很久,很久......

因?yàn)殡娮由虅?wù)和軟件開發(fā)是我的專長,于是我覺得還是從身邊最熟悉的開始做起吧。所以我將網(wǎng)站建設(shè)中最常用到的一些功能以XML的方式來完成。 你也一樣可以的!

標(biāo)簽:河南 沈陽 上海 長治 紅河 新疆 樂山 滄州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《XML卷之實(shí)戰(zhàn)錦囊(4):選單連動(dòng)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    天水市| 金坛市| 育儿| 东丰县| 南漳县| 临海市| 方城县| 安泽县| 伽师县| 涪陵区| 红桥区| 泸水县| 无锡市| 邵东县| 正蓝旗| 延长县| 清河县| 烟台市| 绥德县| 邯郸市| 南京市| 内乡县| 大冶市| 南澳县| 兴山县| 广昌县| 阿鲁科尔沁旗| 砚山县| 隆回县| 连云港市| 常德市| 奉新县| 沈阳市| 汽车| 吉安县| 宜兰市| 武胜县| 将乐县| 额尔古纳市| 清新县| 屯门区|