下拉列表两级连动的新方法(二)
来源:asp之家 发布时间:2009-06-04 18:22:00
下面代码即是VBScript代码在服务器端编译后的显示内容,如果我们把这段代码保存成静态文件(HTML)或JS文件,那么上一篇提出的问题就迎刃而解了。
<script language = "JavaScript">
var onecount;
subcat = new Array();
subcat[0] = new Array('娱乐频道',117,0,'04',1,'True');
subcat[1] = new Array('娱乐排名',183,117);
subcat[2] = new Array('综合娱乐',184,117);
subcat[3] = new Array('在线视听',185,117);
subcat[4] = new Array('时尚前沿',186,117);
subcat[5] = new Array('吃喝玩乐',187,117);
subcat[6] = new Array('艺术欣赏',188,117);
subcat[7] = new Array('奇闻趣事',189,117);
subcat[8] = new Array('美食天地',190,117);
subcat[9] = new Array('运动健身',191,117);
subcat[10] = new Array('宠物世界',192,117);
subcat[11] = new Array('美容保健',193,117);
subcat[12] = new Array('休闲购物',194,117);
subcat[13] = new Array('动漫卡通',195,117);
subcat[14] = new Array('明星工厂',196,117);
subcat[15] = new Array('服装服饰',197,117);
subcat[16] = new Array('快乐童年',198,117);
subcat[17] = new Array('休闲读物',199,117);
subcat[18] = new Array('休闲游戏',200,117);
subcat[19] = new Array('其它娱乐',202,117);
subcat[20] = new Array('我的空间',253,0);
subcat[21] = new Array('行业展示',114,0);
subcat[22] = new Array('行业排名',121,114);
subcat[23] = new Array('综合行业',122,114);
subcat[24] = new Array('汽车',123,114);
subcat[25] = new Array('房地产',124,114);
subcat[26] = new Array('IT',125,114);
subcat[27] = new Array('IT排名',148,125);
subcat[28] = new Array('综合IT',149,125);
subcat[29] = new Array('计算机',150,125);
subcat[30] = new Array('手机',151,125);
subcat[31] = new Array('数码产品',152,125);
subcat[32] = new Array('电子',153,125);
subcat[33] = new Array('通信',154,125);
subcat[34] = new Array('软件',155,125);
subcat[35] = new Array('广电',156,125);
subcat[36] = new Array('工控产品',157,125);
subcat[37] = new Array('系统集成',158,125);
subcat[38] = new Array('信息服务',160,125);
subcat[39] = new Array('传感器',232,125);
subcat[40] = new Array('网站服务',237,125);
subcat[41] = new Array('其它IT',159,125);
subcat[42] = new Array('家用电器',126,114);
subcat[43] = new Array('纺织',127,114);
subcat[44] = new Array('金融',128,114);
subcat[45] = new Array('食品',129,114);
subcat[46] = new Array('电信',130,114);
subcat[47] = new Array('生活用品',131,114);
subcat[48] = new Array('医药保健',132,114);
subcat[49] = new Array('礼品玩具',133,114);
subcat[50] = new Array('办公用品',134,114);
subcat[51] = new Array('能源',135,114);
subcat[52] = new Array('物流',136,114);
subcat[53] = new Array('机械',137,114);
subcat[54] = new Array('环保',138,114);
subcat[55] = new Array('化工',139,114);
subcat[56] = new Array('农产品',140,114);
subcat[57] = new Array('印刷包装',141,114);
subcat[58] = new Array('媒体广告',142,114);
subcat[59] = new Array('公共安全',144,114);
subcat[60] = new Array('图书音像',145,114);
subcat[61] = new Array('工业产品',146,114);
subcat[62] = new Array('其他行业',147,114);
subcat[63] = new Array('商业服务',115,0);
subcat[64] = new Array('资讯频道',118,0);
subcat[65] = new Array('教育频道',119,0);
subcat[66] = new Array('就业频道',120,0);
subcat[67] = new Array('交友频道',250,0);
subcat[68] = new Array('商业机会',251,0);
subcat[69] = new Array('大众点评',252,0);
subcat[70] = new Array('旅游频道',116,0);
subcat[71] = new Array('体育频道',260,0);
subcat[72] = new Array('科技频道',261,0);
subcat[73] = new Array('数码频道',262,0);
subcat[74] = new Array('健康频道',263,0);
subcat[75] = new Array('汽车频道',264,0);
subcat[76] = new Array('房产频道',265,0);
subcat[77] = new Array('时尚频道',266,0);
subcat[78] = new Array('手机频道',267,0);
subcat[79] = new Array('100名人榜',257,0);
subcat[80] = new Array('100品牌榜',256,0);
onecount=81;
</script>
好,那们就要用到ASP中的FSO组件了--生成一个新的文件。
我们现在用ASP来生成一个JS文件:
set fso=server.CreateObject("scripting.filesystemobject")
path=server.MapPath("/") //转换为物理路径
Set fout = fso.CreateTextFile(Path & "\tree.js",true) //生成tree.js文件,如果原文件存在,即覆盖原文件
fout.WriteLine "var onecount;"
fout.WriteLine "subcat = new Array();"
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from tree ",conn,1,1
count = 0
do while not rs.eof
fout.WriteLine "subcat["&count&"] = new Array('"& rs("名称")&"',"& rs("ID号")&","& rs("上级ID")&");")
count = count + 1
rs.movenext
loop
rs.close
fout.WriteLine "onecount="&count&";"
fout.close
set fout=nothing
set fso=nothing
OK!静态文件已经生成了,现在就是调用了。在相应的代码中调用此文件即可,如下:
function start()
{
var i;
for (i=0;i < onecount; i++)
{
if (subcat[i][2] == 0)
{ //一级分类
document.myform.aclass.options[document.myform.aclass.length] = new Option(subcat[i][0], subcat[i][1]);
}
}
}
function changelocation(locationid) //两级联动
{
document.myform.nclass.length = 0;
var locationid=locationid;
var i,j;
for (i=0;i < onecount; i++)
{
if (subcat[i][2] == locationid)
{ //二级分类
document.myform.nclass.options[document.myform.nclass.length] = new Option(subcat[i][0], subcat[i][1]);
}
if (document.myform.nclass.length == 0)
{
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.myform.nclass.options[document.myform.nclass.length] = new Option(subcat[i][0], subcat[i][1]);
}
}
}
}
<body>...</body>中的代码如下:
<script language="jscript" src="tree.js"></script>
一级分类:
<select name="aclass" size="1" id="aclass" style="width:80px" onChange="changelocation(document.myform.aclass.options[document.myform.aclass.selectedIndex].value)" class="wenbenkuang">
<option value="" selected>请选择</option>
</select>
二级分类:
<select name="nclass" class="wenbenkuang" style="width:80px" onChange="change(document.myform.nclass.options[document.myform.nclass.selectedIndex].value)" >
<option value="" selected>请选择</option>
</select>
至此,所有工作已经结束了,这种方法减少了服务器的压力,也提高了访问速度。对于类别越多的代码,其访问速度越明显。


猜你喜欢
- 因为我们现在的前端框架做性能优化,为了找到各个组件及框架的具体解析耗时,需要在框架中嵌入一个耗时测试工具,性能测试跟不同的计算机硬件配置有很
- 双指数函数待拟合曲线为 y(x) = bepx + ceqximport matplotlib.pyplot as pltx = ([0.0
- 有时在处理不规则数据时需要提取文本包含的时间日期。dateutil.parser模块可以统一日期字符串格式。datefinder模块可以在字
- 如果查询结果很多,服务器解释你的ASP script将花费大量的时间,因为有许多的Response.Write语句要处理. 如果你将输出的全
- 一、Pandas Series对象Pandas 是基于 NumPy 设计实现的 Python 数据分析库,Pandas 提供了大量的能让我们
- 判断字符串长度函数:<SCRIPT LANGUAGE="JavaScript"><!--fu
- 最近在学习Vue.js,把自己遇到的问题做个记录,所以,今天添加一点小笔记。在项目中遇到两个问题,简单的做个笔记来记录自己解决的问题,可能不
- 本文实例讲述了python编程开发之类型转换convert。分享给大家供大家参考,具体如下:在python的开发过程中,难免会遇到类型转换,
- 背景本文主要给大家介绍了关于在Python一段程序中使用多次事件循环的相关内容,我们在Python异步程序编写中经常要用到如下的结构impo
- 前些日子在SmashingMagazine看到一篇关于CSS3新技术不错的文章,它详细介绍了CSS3的新特性和它的使用方法,它包括:浏览器专
- 本文范例是书写两个日志:错误日志(ERROR级别)和运行日志(DEBUG级别),其中运行日志每日凌晨进行分割import logging,d
- 前言本项目为IOT实验室人员签到考勤设计,系统实现功能:1.人员人脸识别并完成签到/签退2.考勤时间计算3.保存考勤数据为CSV格式(Exc
- 前言Blender 并不是唯一一款允许你为场景编程和自动化任务的3D软件; 随着每一个新版本的推出,Blender 正逐渐成为一个可靠的 C
- 支持实时监控sliderbar的数据,允许有callback回调的函数,有示例1、可自定样式SetStyle() 2、带有onSroll功能
- 1.进入官网https://www.python.org/,点击Downloads下的Windows按钮,进入下载页面。2.如下图所示,点击
- 列表的索引取值1. 列表的索引和字符串一样,列表中的每一个元素也都有一个属于自己的编号,这个编号就是列表的索引。2. 列表索引取值通过字符串
- 前言在CSDN发的第一篇文章,时隔两年,终于实现了爬微博的自由!本文可以解决微博预登录、识别“展开全文”并爬取完整数据、翻页设置等问题。由于
- 程序只要在运行,就免不了会出现错误,错误很常见,比如Error,Notice,Warning等等。在PHP中,主要有以下3种错误类型。1.注
- 创建视图创建视图success.blade.php<!doctype html><html lang="{{ s
- 目的是为了检测出采集数据中的异常值。所以很明确,这种情况下的簇为2:正常数据和异常数据两大类1、安装相应的库import matplotli