asp使用xml文件实现联动下拉框
来源:互联网 发布:天津咸水沽美工招聘 编辑:程序博客网 时间:2024/05/17 04:58
asp网页调用xml文件,实现两个下拉框的联动。
//调用xml文件函数
function loadxml(filepath)
{
var oDom=new ActiveXObject('Microsoft.XMLDOM');
oDom.async=false;
oDom.load(filepath);
if(oDom == null)
{
alert('您的浏览器不支持xml文件读取,或不存在此文件。于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
return false;
}
else
{
return oDom;
}
}
//初始填充
function initfill(select1,select2,strvalue1,strvalue2,xmlfile,dm_label1,nr_label1,dm_label2,nr_label2)
//主选框名称,联动框名称,主选框初始值,副选框初始值,xml文件,主选框关键字标签名,主选框关键字内容标签名,联动框关键字标签名,副选框关键字内容标签名。
{
var i=0;
var oSelect1=document.all(select1);
var oSelect2=document.all(select2);
var xmlDom=loadxml(xmlfile);
var nodes=xmlDom.documentElement.childNodes;
var nodesbuff
for(i=0;i<nodes.length;i++)
{
oSelect1.add(document.createElement("OPTION"));
oSelect1.options[i].text=nodes[i].getAttribute(nr_label1);
oSelect1.options[i].value=nodes[i].getAttribute(dm_label1);
if (oSelect1.options[i].value==strvalue1)
{
oSelect1.selectedIndex=i;
nodesbuff=nodes[i].childNodes;
}
}
if (nodesbuff!=null)
{
initfillselect(oSelect2,nodesbuff,dm_label2,nr_label2,strvalue2);
}
}//end initfill
//带初始值初始填充
function initfillselect(oSelect,nodes,dm_label,nr_label,strvalue)
{ var i=0;
for(i=oSelect.options.length;i>=0;i--)
{
oSelect.options.remove(i);
}
for(i=0;i<nodes.length;i++)
{
oSelect.add(document.createElement("OPTION"));
oSelect.options[i].text=nodes[i].getAttribute(dm_label)+":"+nodes[i].getAttribute(nr_label);
oSelect.options[i].value=nodes[i].getAttribute(dm_label);
if (oSelect.options[i].value==strvalue)
{
oSelect.selectedIndex=i;
}
}
}//end initfillselect
//下拉框联动
function select_change(select1,select2,xmlfile,dm_label1,dm_label2,nr_label2)//主选 框名称,联动框名称,xml文件,主选框关键字标签名,联动框关键字标签名,副选框关键字内容标签名。
{
var i=0;
var oSelect1=document.all(select1);//主选框
var oSelect2=document.all(select2);//联动框
var curvalue= oSelect1.options[(oSelect1.selectedIndex)].value;//主选框当前关键字
var xmlDom=loadxml(xmlfile);//读取xml文件
var nodes=xmlDom.documentElement.childNodes;
var nodeschild
for(i=0;i<nodes.length;i++)
{
if (nodes[i].getAttribute(dm_label1)==curvalue)
{
nodeschild=nodes[i].childNodes;
fillselect(oSelect2,nodeschild,dm_label2,nr_label2); //根据主选框类别填充副选框
return true;
}
}
}
//填充被联动框
function fillselect(oSelect,nodes,dm_label,nr_label)
{ var i=0;
for(i=oSelect.options.length;i>=0;i--)
{
oSelect.options.remove(i);
}
for(i=0;i<nodes.length;i++)
{
oSelect.add(document.createElement("OPTION"));
oSelect.options[i].text=nodes[i].getAttribute(dm_label)+":"+nodes[i].getAttribute(nr_label);
oSelect.options[i].value=nodes[i].getAttribute(dm_label);
}
}
//填充普通select
function select_fill(SelectName,xmlfile,dm_label,nr_label,initvalue)
{
var i=0;
var oSelect=document.all(SelectName);
var xmlDom=loadxml(xmlfile);
var nodes=xmlDom.documentElement.childNodes;
if (initvalue==""||initvalue==null){initvalue=0;}
for(i=0;i<nodes.length;i++)
{
oSelect.add(document.createElement("OPTION"));
oSelect.options[i].text=nodes[i].getAttribute(nr_label);
oSelect.options[i].value=nodes[i].getAttribute(dm_label);
if (nodes[i].getAttribute(dm_label)==initvalue)
{
oSelect.selectedIndex=i;
}
}
}
xml格式文件实例:
<hyml code="I" mlname="住宿和餐饮业">
<hydm code="I6600" hyname="住宿业" />
<hydm code="I6610" hyname=" 旅游饭店" />
<hydm code="I6620" hyname=" 一般旅馆"/>
<hydm code="I6690" hyname=" 其他住宿服务"/>
<hydm code="I6700" hyname="餐饮业"/>
<hydm code="I6710" hyname=" 正餐服务"/>
<hydm code="I6720" hyname=" 快餐服务"/>
<hydm code="I6730" hyname=" 饮料及冷饮服务"/>
<hydm code="I6790" hyname=" 其他餐饮服务"/>
</hyml>
<hyml code="J" mlname="金融业">
<hydm code="J6800" hyname="银行业" />
<hydm code="J6810" hyname=" 中央银行" />
<hydm code="J6820" hyname=" 商业银行"/>
<hydm code="J6890" hyname=" 其他银行"/>
<hydm code="J7190" hyname=" 其他未列明的金融活动"/>
</hyml>
<hyml code="K" mlname="房地产业">
<hydm code="K7200" hyname="房地产业" />
<hydm code="K7210" hyname=" 房地产开发经营" />
<hydm code="K7220" hyname=" 物业管理"/>
<hydm code="K7230" hyname=" 房地产中介服务"/>
<hydm code="K7290" hyname=" 其他房地产活动"/>
</hyml>
<hyml code="L" mlname="租赁和商务服务业 ">
<hydm code="L7300" hyname="租赁业" />
<hydm code="L7310" hyname=" 机械设备租赁" />
<hydm code="L7311" hyname=" 汽车租赁"/>
<hydm code="L7312" hyname=" 农业机械租赁"/>
<hydm code="L7313" hyname=" 建筑工程机械与设备租赁"/>
<hydm code="L7314" hyname=" 计算机及通讯设备租赁"/>
<hydm code="L7319" hyname=" 其他机械与设备租赁"/>
</hyml>
asp实例
<table>
<tr>
<td colspan="1">行业代码:<input type="hidden" name="hymlbuff" value="初始值" /></td>
<td colspan="7"><select name="hyml" style=" width:220px;" onchange="select_change('hyml','hydm','../public/xml/hydm.xml','code','code','hyname');"></select>
<input type="hidden" name="hydmbuff" value="初始值" />
<select name="hydm" style=" width:300px;" ></select>
</td>
</tr>
</table>
initfill("hyml","hydm",document.all("hymlbuff").value,document.all("hydmbuff").value,"../public/xml/hydm.xml","code","mlname","code","hyname");
</script>
//调用xml文件函数
function loadxml(filepath)
{
var oDom=new ActiveXObject('Microsoft.XMLDOM');
oDom.async=false;
oDom.load(filepath);
if(oDom == null)
{
alert('您的浏览器不支持xml文件读取,或不存在此文件。于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
return false;
}
else
{
return oDom;
}
}
//初始填充
function initfill(select1,select2,strvalue1,strvalue2,xmlfile,dm_label1,nr_label1,dm_label2,nr_label2)
//主选框名称,联动框名称,主选框初始值,副选框初始值,xml文件,主选框关键字标签名,主选框关键字内容标签名,联动框关键字标签名,副选框关键字内容标签名。
{
var i=0;
var oSelect1=document.all(select1);
var oSelect2=document.all(select2);
var xmlDom=loadxml(xmlfile);
var nodes=xmlDom.documentElement.childNodes;
var nodesbuff
for(i=0;i<nodes.length;i++)
{
oSelect1.add(document.createElement("OPTION"));
oSelect1.options[i].text=nodes[i].getAttribute(nr_label1);
oSelect1.options[i].value=nodes[i].getAttribute(dm_label1);
if (oSelect1.options[i].value==strvalue1)
{
oSelect1.selectedIndex=i;
nodesbuff=nodes[i].childNodes;
}
}
if (nodesbuff!=null)
{
initfillselect(oSelect2,nodesbuff,dm_label2,nr_label2,strvalue2);
}
}//end initfill
//带初始值初始填充
function initfillselect(oSelect,nodes,dm_label,nr_label,strvalue)
{ var i=0;
for(i=oSelect.options.length;i>=0;i--)
{
oSelect.options.remove(i);
}
for(i=0;i<nodes.length;i++)
{
oSelect.add(document.createElement("OPTION"));
oSelect.options[i].text=nodes[i].getAttribute(dm_label)+":"+nodes[i].getAttribute(nr_label);
oSelect.options[i].value=nodes[i].getAttribute(dm_label);
if (oSelect.options[i].value==strvalue)
{
oSelect.selectedIndex=i;
}
}
}//end initfillselect
//下拉框联动
function select_change(select1,select2,xmlfile,dm_label1,dm_label2,nr_label2)//主选 框名称,联动框名称,xml文件,主选框关键字标签名,联动框关键字标签名,副选框关键字内容标签名。
{
var i=0;
var oSelect1=document.all(select1);//主选框
var oSelect2=document.all(select2);//联动框
var curvalue= oSelect1.options[(oSelect1.selectedIndex)].value;//主选框当前关键字
var xmlDom=loadxml(xmlfile);//读取xml文件
var nodes=xmlDom.documentElement.childNodes;
var nodeschild
for(i=0;i<nodes.length;i++)
{
if (nodes[i].getAttribute(dm_label1)==curvalue)
{
nodeschild=nodes[i].childNodes;
fillselect(oSelect2,nodeschild,dm_label2,nr_label2); //根据主选框类别填充副选框
return true;
}
}
}
//填充被联动框
function fillselect(oSelect,nodes,dm_label,nr_label)
{ var i=0;
for(i=oSelect.options.length;i>=0;i--)
{
oSelect.options.remove(i);
}
for(i=0;i<nodes.length;i++)
{
oSelect.add(document.createElement("OPTION"));
oSelect.options[i].text=nodes[i].getAttribute(dm_label)+":"+nodes[i].getAttribute(nr_label);
oSelect.options[i].value=nodes[i].getAttribute(dm_label);
}
}
//填充普通select
function select_fill(SelectName,xmlfile,dm_label,nr_label,initvalue)
{
var i=0;
var oSelect=document.all(SelectName);
var xmlDom=loadxml(xmlfile);
var nodes=xmlDom.documentElement.childNodes;
if (initvalue==""||initvalue==null){initvalue=0;}
for(i=0;i<nodes.length;i++)
{
oSelect.add(document.createElement("OPTION"));
oSelect.options[i].text=nodes[i].getAttribute(nr_label);
oSelect.options[i].value=nodes[i].getAttribute(dm_label);
if (nodes[i].getAttribute(dm_label)==initvalue)
{
oSelect.selectedIndex=i;
}
}
}
xml格式文件实例:
<hyml code="I" mlname="住宿和餐饮业">
<hydm code="I6600" hyname="住宿业" />
<hydm code="I6610" hyname=" 旅游饭店" />
<hydm code="I6620" hyname=" 一般旅馆"/>
<hydm code="I6690" hyname=" 其他住宿服务"/>
<hydm code="I6700" hyname="餐饮业"/>
<hydm code="I6710" hyname=" 正餐服务"/>
<hydm code="I6720" hyname=" 快餐服务"/>
<hydm code="I6730" hyname=" 饮料及冷饮服务"/>
<hydm code="I6790" hyname=" 其他餐饮服务"/>
</hyml>
<hyml code="J" mlname="金融业">
<hydm code="J6800" hyname="银行业" />
<hydm code="J6810" hyname=" 中央银行" />
<hydm code="J6820" hyname=" 商业银行"/>
<hydm code="J6890" hyname=" 其他银行"/>
<hydm code="J7190" hyname=" 其他未列明的金融活动"/>
</hyml>
<hyml code="K" mlname="房地产业">
<hydm code="K7200" hyname="房地产业" />
<hydm code="K7210" hyname=" 房地产开发经营" />
<hydm code="K7220" hyname=" 物业管理"/>
<hydm code="K7230" hyname=" 房地产中介服务"/>
<hydm code="K7290" hyname=" 其他房地产活动"/>
</hyml>
<hyml code="L" mlname="租赁和商务服务业 ">
<hydm code="L7300" hyname="租赁业" />
<hydm code="L7310" hyname=" 机械设备租赁" />
<hydm code="L7311" hyname=" 汽车租赁"/>
<hydm code="L7312" hyname=" 农业机械租赁"/>
<hydm code="L7313" hyname=" 建筑工程机械与设备租赁"/>
<hydm code="L7314" hyname=" 计算机及通讯设备租赁"/>
<hydm code="L7319" hyname=" 其他机械与设备租赁"/>
</hyml>
asp实例
<table>
<tr>
<td colspan="1">行业代码:<input type="hidden" name="hymlbuff" value="初始值" /></td>
<td colspan="7"><select name="hyml" style=" width:220px;" onchange="select_change('hyml','hydm','../public/xml/hydm.xml','code','code','hyname');"></select>
<input type="hidden" name="hydmbuff" value="初始值" />
<select name="hydm" style=" width:300px;" ></select>
</td>
</tr>
</table>
initfill("hyml","hydm",document.all("hymlbuff").value,document.all("hydmbuff").value,"../public/xml/hydm.xml","code","mlname","code","hyname");
</script>
- asp使用xml文件实现联动下拉框
- jQuery解析xml文件,使用get方法实现省市县三级联动下拉框
- js操作xml实现下拉框联动
- ASP下拉框联动
- ASP 二级联动下拉框
- ASP 二级联动下拉框
- asp 下拉框二级联动
- asp 下拉框二级联动
- 用XML实现三级联动下拉列表框
- Jquery Ajax读取XML文档实现联动下拉框实例
- ASP.NET实现下拉框二级联动组件
- ASP.NET实现下拉框二级联动组件
- ASP.NET实现下拉框二级联动组件
- ASP.NET实现下拉框二级联动组件
- Asp.NET实现下拉框二级联动组件
- ASP.NET——实现两个下拉框动态联动
- java导出文件实现下拉框联动效果
- javascrip实现下拉框联动
- 四川理工学院毕业生就业信息动态跟踪系统
- Google工程师对学生朋友的一点建议
- error C2679: binary ',class std::allocator >' (or there is no accept
- win32的安全子类化
- 5.2 let it snow--game programming gems 5 笔记
- asp使用xml文件实现联动下拉框
- 5.3 widgets:rendering fast and persistent foliage--game programming gems 5笔记
- 论Web 2.0时代的PHP
- c#实现简单工厂—数据库连接
- You Know You've Been on the Computer Too Long When...
- 深入浅出理解索引结构
- 【vc】【STL源码】vector,deque与sort的用法比较及入门
- Google 杰出工程师谈学术搜索
- ie浏览器mshtml.dll报错