Javascript 呼叫XML製作連動下拉框程式碼實例詳解
傳統的HTML頁面中連動下拉框採用了兩種方法:
1)直接將下拉框中的內容hardcode於html的javascript中,呼叫Javascript函數循環寫入下拉框中。這種方法不適用於下拉框內容經常改變的情況。因為資料來源和javascript程式寫死在同一頁。
<html> <head> <title>List</title> <meta http-equiv="Content-Type" content="text/html; c harset=gb2312"> <script LANGUAGE="javascript"> <!-- var onecount; onecount=0; subcat = new Array(); subcat[0] = new Array("徐汇区","01","001"); subcat[1] = new Array("嘉定区","01","002"); subcat[2] = new Array("黄浦区","01","003"); subcat[3] = new Array("南昌市","02","004"); subcat[4] = new Array("九江市","02","005"); subcat[5] = new Array("上饶市","02","006"); onecount=6; function changelocation(locationid) { document.myform.smalllocation.length = 0; var locationid=locationid; var i; document.myform.smalllocation.options[0] = new Option('====所有地区====',''); for (i=0;i <onecount; i++) { if (subcat[i][1] == locationid) { document.myform.smalllocation.options[document.myform.smalllocation.length] = new Option(subcat[i][0], subcat[i][2]); } } } //--> </script> </head> <body> <form name="myform" method="post"> <select name="biglocation" onChange="changelocation(document.myform.biglocation.options[document.myform.biglocation.selectedIndex].value)"> <option value="01" selected>上海</option> <option value="02">江西</option> </select> <select name="smalllocation"> <option selected value="">==所有地区==</option> </select> </form> <script LANGUAGE="javascript"> <!-- changelocation(document.myform.biglocation.options[document.myform.biglocation.selectedIndex].value); //--> </script> </body> </html>
2)javascript 直接讀取資料庫,取資料庫中的記錄寫入javascript中,然後和第一種方法一樣,呼叫javascript函數循環寫入下拉框中。此方法將資料來源與javascript分開,但,公開資料庫的連接,從安全角度說,沒有太多實用價值。
我的方法是將下拉方塊中的資料放在xml檔案中,用javascript讀XML文件,取得下拉方塊中的內容。
HTML 檔案如下:
<!-- myfile.html --> <html> <head> <script language="JavaScript" for="window" event="onload"> var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); var i=0; var j=0; var subclass_name=""; loadXML(); function loadXML(){ xmlDoc.async="false"; xmlDoc.load("account.xml"); xmlObj=xmlDoc.documentElement; nodes = xmlDoc.documentElement.childNodes; document.frm.mainclass.options.length = 0; document.frm.subclass.options.length = 0; for (i=0;i<xmlObj.childNodes.length;i++){ labels=xmlObj.childNodes(i).getAttribute("display_name"); values=xmlObj.childNodes(i).text; document.frm.mainclass.add(document.createElement("OPTION")); document.frm.mainclass.options[i].text=labels; document.frm.mainclass.options[i].value=values; } } </script> <script language="JavaScript" > var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); var i=0; var j=0; function deleteOption() { } function setsubclass(main){ var is_selected="N"; if (document.frm.subclass.options.length!=0) { for (i=0;i<=document.frm.subclass.options.length;i++) document.frm.subclass.options[i]=null ; } //重复才有效 if (document.frm.subclass.options.length!=0) { for (i=0;i<=document.frm.subclass.options.length;i++){ document.frm.subclass.options[i]=null ; document.frm.subclass.options.remove(i); } } for (i=0;i<xmlObj.childNodes.length;i++){ var values=""; var lables=""; if (is_selected=="Y") return; labels=xmlObj.childNodes(i).getAttribute("display_name"); values=xmlObj.childNodes(i).text; //alert(labels+ " | "+main); if (labels==main){ is_selected="Y"; for (j=0;j<xmlObj.childNodes(i).childNodes.length;j++){ //subclass_name="document.frm.subclass"; labels=xmlObj.childNodes(i).childNodes(j).getAttribute("display_name"); values=xmlObj.childNodes(i).childNodes(j).text; //alert(values); document.frm.subclass.add(document.createElement("OPTION")); document.frm.subclass.options[j].text=labels; document.frm.subclass.options[j].value=values; } } } } </script> <title>在HTML中调用XML数据</title> </head> <body bgcolor="#FFFFFF"> <FORM NAME="frm"> 类型<SELECT NAME="mainclass" OnChange='setsubclass(this[selectedIndex].text)'></SELECT> <option selected value="" ></option> 子类<SELECT NAME="subclass"></SELECT> </form> </body> </html> account.xml 如下: <?xml version="1.0" encoding="GB2312"?> <item> <class display_name="未选定"> <subclass display_name="">Not Available</subclass> </class> <class display_name="95788主叫卡"> <subclass display_name="1152069589-1152069638">dangdang1</subclass> <subclass display_name="1152081031-1152081080">dangdang2</subclass> <subclass display_name="1152547201-1105254750">dangdang3</subclass> <subclass display_name="1152548401-1152548700">dangdang4</subclass> <subclass display_name="1152548701-1152549000">dangdang5</subclass> <subclass display_name="1156000001-1156010000">dangdang6</subclass> </class> <class display_name="网上注册"> <subclass display_name="1152000001-1152001000">zhuce_user1</subclass> <subclass display_name="1151001000-1151005000">zhuce_user2</subclass> </class> <class display_name="通讯"> <subclass display_name="1156030001-1156080000">tongxun</subclass> </class> </item>
此方法將資料來源與javascript程式分開,適合經常變更的資料來源。 xmlDoc.load中可以直接呼叫URL參數,讀取遠端XML,實現鬆散耦合。以上應用在IE6.0中通過。缺點是在移除下拉框清單內容時需要
重複執行刪除操作,否則會有明顯的bug.希望有讀者能給指正。
以上就是Javascript 呼叫XML製作連動下拉框程式碼實例詳解的內容,更多相關內容請關注PHP中文網(www.php.cn)!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

XML檔可以用PPT開啟嗎? XML,即可擴展標記語言(ExtensibleMarkupLanguage),是一種廣泛應用於資料交換和資料儲存的通用標記語言。與HTML相比,XML更加靈活,能夠定義自己的標籤和資料結構,使得資料的儲存和交換更加方便和統一。而PPT,即PowerPoint,是微軟公司開發的一種用於創建簡報的軟體。它提供了圖文並茂的方

如何使用WebSocket和JavaScript實現線上語音辨識系統引言:隨著科技的不斷發展,語音辨識技術已成為了人工智慧領域的重要組成部分。而基於WebSocket和JavaScript實現的線上語音辨識系統,具備了低延遲、即時性和跨平台的特點,成為了廣泛應用的解決方案。本文將介紹如何使用WebSocket和JavaScript來實現線上語音辨識系

WebSocket與JavaScript:實現即時監控系統的關鍵技術引言:隨著互聯網技術的快速發展,即時監控系統在各個領域中得到了廣泛的應用。而實現即時監控的關鍵技術之一就是WebSocket與JavaScript的結合使用。本文將介紹WebSocket與JavaScript在即時監控系統中的應用,並給出程式碼範例,詳細解釋其實作原理。一、WebSocket技

如何利用JavaScript和WebSocket實現即時線上點餐系統介紹:隨著網路的普及和技術的進步,越來越多的餐廳開始提供線上點餐服務。為了實現即時線上點餐系統,我們可以利用JavaScript和WebSocket技術。 WebSocket是一種基於TCP協定的全雙工通訊協議,可實現客戶端與伺服器的即時雙向通訊。在即時線上點餐系統中,當使用者選擇菜餚並下訂單

JavaScript和WebSocket:打造高效的即時天氣預報系統引言:如今,天氣預報的準確性對於日常生活以及決策制定具有重要意義。隨著技術的發展,我們可以透過即時獲取天氣數據來提供更準確可靠的天氣預報。在本文中,我們將學習如何使用JavaScript和WebSocket技術,來建立一個高效的即時天氣預報系統。本文將透過具體的程式碼範例來展示實現的過程。 We

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

使用PHPXML函數處理XML資料:解析XML資料:simplexml_load_file()和simplexml_load_string()載入XML檔案或字串。存取XML資料:利用SimpleXML物件的屬性和方法來取得元素名稱、屬性值和子元素。修改XML資料:使用addChild()和addAttribute()方法新增元素和屬性。序列化XML資料:asXML()方法將SimpleXML物件轉換為XML字串。實戰案例:解析產品饋送XML,提取產品信息,轉換並將其儲存到資料庫中。

JavaScript中的HTTP狀態碼取得方法簡介:在進行前端開發中,我們常常需要處理與後端介面的交互,而HTTP狀態碼就是其中非常重要的一部分。了解並取得HTTP狀態碼有助於我們更好地處理介面傳回的資料。本文將介紹使用JavaScript取得HTTP狀態碼的方法,並提供具體程式碼範例。一、什麼是HTTP狀態碼HTTP狀態碼是指當瀏覽器向伺服器發起請求時,服務
