惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cisco Blogs
Schneier on Security
Schneier on Security
T
Tor Project blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tenable Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Threat Research - Cisco Blogs
C
CERT Recently Published Vulnerability Notes
Security Latest
Security Latest
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
NISL@THU
NISL@THU
L
Lohrmann on Cybersecurity
Scott Helme
Scott Helme
Webroot Blog
Webroot Blog
Project Zero
Project Zero
Google Online Security Blog
Google Online Security Blog
The Last Watchdog
The Last Watchdog
Spread Privacy
Spread Privacy
Hacker News: Ask HN
Hacker News: Ask HN
PCI Perspectives
PCI Perspectives
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
W
WeLiveSecurity
Attack and Defense Labs
Attack and Defense Labs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
N
News | PayPal Newsroom
Help Net Security
Help Net Security
The Hacker News
The Hacker News
H
Heimdal Security Blog
O
OpenAI News
S
Security @ Cisco Blogs
N
News and Events Feed by Topic
Cyberwarzone
Cyberwarzone
Simon Willison's Weblog
Simon Willison's Weblog
G
GRAHAM CLULEY
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 叶小钗
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
Tailwind CSS Blog
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
I
Intezer
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
Security Affairs
P
Proofpoint News Feed
S
Secure Thoughts
腾讯CDC
Google DeepMind News
Google DeepMind News
量子位
罗磊的独立博客

博客园 - 东哥

MongoVUE 错误:can't map file memory - mongo requires 64 bit build for larger datasets HTTP Header 属性列表 安装卸载Windows服务,修改windows服务执行路径! SQL 语句嵌套,自己记录下。 基于RBAC的权限设计模型 javascript中getElementsByName的问题 动态添加WEB控件,点控件获取动态添加的控件 数据库基本----SQL语句大全 使用Ajax时的十个常犯的错误 数据采集程序(网页小偷)点滴心得 WEB Service 下实现大数据量的传输 [转]将上传图片打上防伪图片水印并写入数据库 我奋斗了18年不是为了和你一起喝咖啡(转载) [转]社区好友列表利用率越高,社区越失败 很实用的一个图片上传得例子 [转帖]教程:使用WebService进行异步通信 如何用Javascript记录登陆次数 很酷实用的右键弹出菜单(Js+DVML) JavaScript如果文字过长,则将过长的部分变成省略号显示
三级连动JS数据库查询代码整理
东哥 · 2008-06-18 · via 博客园 - 东哥

数据库表设计

字段ClassID,ClassName,ClassType,ParentClassID

  • ClassID类别ID
  • ClassName类别名称
  • ClassType=1 顶级分类
  • ClassType=2一级分类
  • ClassType=3二级分类

ParentClassID父类ClassID,顶类的父类默认为0

脚本代码

<%
sql = "select * from Bs_ProductClass where ClassType=2 order by ClassID asc"
set rs = conn.execute(sql)
%>
<script language = "JavaScript">
 var onecount;
 onecount=0;
 subcat = new Array();
<%
count1 = 0
do while not rs.eof
%>
subcat[<%=count1%>] = new Array("<%= trim(rs("ClassName"))%>","<%= trim(rs("ParentClassID"))%>","<%= trim(rs("ClassID"))%>");
<%
count1 = count1 + 1
rs.movenext
loop
rs.close
set rs=nothing
%>
onecount=<%=count1%>;

function changelocation(ClassID1)
{
  document.myform.BigClassID.length = 0;
  var ClassID1=ClassID1;
  var i;
  var op1 = document.createElement("OPTION");
  document.myform.BigClassID.options[0] = new Option('==所属大类名称==',' ');
  for (i=0;i < onecount; i++)
  {
    if (subcat[i][1] == ClassID1)
    {
      op1= new Option(subcat[i][0], subcat[i][2]);
      document.myform.BigClassID.options.add(op1);
    }
  }

}
</script>

<%sql2 = "select * from Bs_ProductClass where ClassType=3 order by ClassID asc"
set rs2 = conn.execute(sql2)
%>
<script language = "JavaScript">
var onecount2;
onecount2=0;
subcat2 = new Array();
<%
count2 = 0
do while not rs2.eof
%>
subcat2[<%=count2%>] = new Array("<%= trim(rs2("ClassName"))%>","<%= trim(rs2("ParentClassID"))%>","<%= trim(rs2("ClassID"))%>");
<%
count2 = count2 + 1
rs2.movenext
loop
rs2.close
set rs2=nothing
%>
onecount2=<%=count2%>;

function changelocation2(ClassID2)
{
  document.myform.SmallClassID.length = 0;

  var ClassID2=ClassID2;
  var j;
  var op2 = document.createElement("OPTION");
  document.myform.SmallClassID.options[0] = new Option('==所属小类名称==',' ');
  for (j=0;j < onecount2; j++)
  {
    if (subcat2[j][1] == ClassID2)
    {
      op2 = new Option(subcat2[j][0], subcat2[j][2]);
      document.myform.SmallClassID.options.add(op2);
    }
  }

}
</script>

调用代码

<form name='myform'>

<select name="TopClassID" id="TopClassID" onChange="changelocation(document.myform.TopClassID.options.value)" size="1">
<option selected value="">请选择所属顶类</option>
<%

sql1 = "select * from Bs_ProductClass where ClassType=1 order by ClassID asc"
set rs1 = conn.Execute (sql1)
do while not rs1.eof
%>
<option value="<%=trim(rs1("ClassID"))%>"><%=trim(rs1("ClassName"))%></option>

<%
rs1.movenext
loop
rs1.close
set rs1 = nothing
conn.Close
set conn = nothing
%>
</select>
大类
<select name="BigClassID" id="BigClassID" onChange="changelocation2(document.myform.BigClassID.options[this.options.selectedIndex].value)">
<option selected value="">==所有大类==</option>
</select>
小类
<select name="SmallClassID" id="SmallClassID" size="1">
<option selected value="">==所有小类==</option>
</select>

</form>