當前位置:編程學習大全網 - 源碼下載 - ASP+access的三級關聯菜單,在線等~~

ASP+access的三級關聯菜單,在線等~~

最好不要每次都從數據庫裏出,太慢,當然下面的XML也可以用ASP從數據裏輸出XML檔的格式再用下面的代碼調用。

基於XML的動態N級聯動

mselect.xml

<?xml version="1.0" encoding="GB2312" ?>

<Troot>

<Item id="1" pid="0" c="1">大學</Item>

<Item id="2" pid="0" c="3">中學</Item>

<Item id="3" pid="0" c="3">小學</Item>

<Item id="4" pid="2" c="2">高中</Item>

<Item id="5" pid="2" c="5">初中</Item>

<Item id="6" pid="15" c="3">清華大學</Item>

<Item id="7" pid="15" c="4">北京大學</Item>

<Item id="8" pid="5" c="3">天津鐵三中</Item>

<Item id="9" pid="4" c="3">天津市二中</Item>

<Item id="10" pid="16" c="2">天津音樂學院</Item>

<Item id="11" pid="15" c="5">天津商學院</Item>

<Item id="12" pid="4" c="3">耀華中學</Item>

<Item id="13" pid="3" c="6">昆緯路小學</Item>

<Item id="14" pid="2" c="6">七中</Item>

<Item id="15" pid="1" c="1">綜合類院校</Item>

<Item id="16" pid="1" c="1">藝術類院校</Item>

<Item id="17" pid="15" c="4">醫科大學</Item>

<Item id="18" pid="15" c="4">天津師範大學</Item>

<Item id="19" pid="15" c="23">天津大學</Item>

<Item id="20" pid="15" c="7">南開大學</Item>

<Item id="21" pid="4" c="23">天津鐵壹中</Item>

<Item id="22" pid="5" c="5">天津鐵壹中</Item>

<Item id="23" pid="3" c="3">天津市鐵路職工子弟第三小學</Item>

<Item id="24" pid="3" c="3">天津市鐵路職工子弟第壹小學</Item>

<Item id="25" pid="16" c="3">美術學院</Item>

<Item id="26" pid="16" c="3">體育學院</Item>

</Troot>

mselect.htm

<HTML>

<HEAD>

<TITLE>XML版本的多級聯動</TITLE>

<SCRIPT LANGUAGE=javascript>

<!--

/***********************************************

//

// 用DOM實現:基於XML的動態N級聯動

//

//**********************************************/

// 最終版權歸WrestSoft所有,您可以在未授權的情況下使用,但請保留此信息

//

// Author: WrestSoft(搏軟狂歌)

// 多級聯動的Select集合

var objSelects = new Array();

// 創建應有的Select對象

function funCreateSelectEl(passPid)

{

// 創建DOMDocument對象

var xmlSrc = new ActiveXObject("MicroSoft.XMLDOM");

xmlSrc = xmlSource.XMLDocument;

// root為文檔對象的根節點

var root = xmlSrc.documentElement;

// 得到所傳父ID的所有節點

var currentItems = root.selectNodes("//Troot/Item[@pid = " + passPid + "]");

var iItems = currentItems.length;

if(iItems > 0)

{

// 創建Select並把OnChange事件寫好

var newChild = document.createElement("<SELECT onchange='eventSltChange()' id='slt" + objSelects.length + "'>");

// 向集合中添加新建的Select對象

objSelects[objSelects.length] = newChild;

// 向Select對向添加所有的Option

var i;

for(i = 0; i < iItems; i++)

{

var oOption = document.createElement("OPTION");

oOption.text = currentItems[i].text;

oOption.value = currentItems[i].attributes[0].text;

newChild.options.add(oOption);

}

// 將新建的Select放到目標上

oDIV.appendChild(newChild);

// 先置壹個空白空值

newChild.value = "";

}

}

// Select的OnChange事件響應函數

function eventSltChange()

{

// 刪除全部本層下的孩子

var i;

for(i = objSelects.length - 1; i > parseInt(event.srcElement.id.replace("slt",""), 10); i--)

{

oDIV.removeChild(objSelects[i]);

objSelects.pop();

}

// 響應新的選擇

funCreateSelectEl(event.srcElement.value);

// 聯動的選擇結果

var resultArray = new Array();

for(i = 0; i < objSelects.length; i++)

{

resultArray[i] = objSelects[i].value;

}

// 輸出選定

OUTPUT.innerText = resultArray.join("-");

}

//-->

</SCRIPT>

</HEAD>

<BODY onload="funCreateSelectEl(0)">

<DIV ID="oDIV"></DIV>

<XML ID="xmlSource" src="mselect.xml"/>

<BR/>

選定結果:<SPAN ID="OUTPUT"></SPAN>

</BODY>

</HTML>

把mselect.xml和mselect.htm保存到同壹目錄,IE運行mselect.htm。

  • 上一篇:鞍山wap源代碼
  • 下一篇:光熱發電與微電網的關系
  • copyright 2024編程學習大全網