CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

◆◆◆◆100分求助◆◆◆◆这种效果网上很少见到的啊,大家有没有类似的例子呢?

楼主hahaheiheiheihei(送分)2005-06-03 08:28:48 在 Web 开发 / ASP 提问

三级关联下拉菜单,我手上有两级下拉关联菜单,就是类似产品分类的那种,类别都是调用数据库里的。现在想找个三级关联菜单,不知哪位有类似的例子?我在网上搜索了好多都没有合适的,大多都是js做的静态的。  
          谢谢大家 问题点数:0、回复次数:9Top

1 楼cncca(来个可乐 9_9)回复于 2005-06-03 08:40:25 得分 0

<%set   rs1=server.createobject("adodb.recordset")  
  sql1="select   *   from   class1"  
  rs1.open   sql1,conn,1,1  
  if   rs1.eof   then  
  topstr="没有分类"  
  else    
  %>    
  <script   language   =   "javascript">  
  <!--  
    <%  
  topstr="<option>选择一级分类</option>"  
  do   while   not   rs1.eof  
  topstr=topstr&"<option   value='"&rs1("class1id")&"'>"&rs1("class1name")&"</option>"  
  %>  
  <%set   rs2=server.createobject("adodb.recordset")  
  sql2="select   *   from   class2   where   class1id="&rs1("class1id")  
  rs2.open   sql2,conn,1,1  
  if   not   rs2.eof   then  
   
  %>  
  str<%=rs1("class1id")%>='<select   name=class2id   onChange="change3(document.myform.class2id.options[document.myform.class2id.selectedIndex].value);"><option>选择二级分类</option>';  
    <%  
    do   while   not   rs2.eof    
  %>  
  str<%=rs1("class1id")%>=str<%=rs1("class1id")%>+'<option   value="<%=rs2("class2id")%>"><%=rs2("class2name")%></option>';  
  <%set   rs3=server.createobject("adodb.recordset")  
  sql3="select   *   from   class3   where   class2id="&rs2("class2id")  
  rs3.open   sql3,conn,1,1  
  if   not   rs3.eof   then  
  %>  
  sstr<%=rs2("class2id")%>='<select   name=class3id>';  
    <%  
    do   while   not   rs3.eof  
  %>  
  sstr<%=rs2("class2id")%>=sstr<%=rs2("class2id")%>+'<option   value="<%=rs3("class3id")%>"><%=rs3("class3name")%></option>';  
  <%  
                  rs3.movenext  
                  loop  
                  rs3.close%>  
  sstr<%=rs2("class2id")%>=sstr<%=rs2("class2id")%>+'</select>';  
  <%else%>  
  sstr<%=rs2("class2id")%>='没有分类';  
  <%end   if   %>  
  <%  
                  rs2.movenext  
                  loop  
                  rs2.close%>  
  str<%=rs1("class1id")%>=str<%=rs1("class1id")%>+'</select>';  
  <%else%>  
  str<%=rs1("class1id")%>='没有分类';  
  <%end   if   %>  
  <%  
                  rs1.movenext  
                  loop  
                  rs1.close  
                  %>  
  function   change2(locationid){  
  if(!locationid)  
  window.file.innerHTML="";  
  else  
  window.file.innerHTML=eval("str"+locationid);  
  window.file2.innerHTML="";  
  return   false;}  
  function   change3(locationid){  
  if(!locationid)  
  window.file2.innerHTML="";  
  else  
  window.file2.innerHTML=eval("sstr"+locationid);  
  return   false;}  
  //-->  
  </script>  
  <%end   if%>  
  <table><tr><td><select   onChange="change2(document.myform.class1id.options[document.myform.class1id.selectedIndex].value);"   name="class1id"   id="class1id">  
  <%=topstr%>  
                  </select></td><td><div   id=file></div></td><td><div   id=file2></div></td></tr></table>  
  Top

2 楼hahaheiheiheihei(送分)回复于 2005-06-03 08:43:41 得分 0

我先建个表测试一下,如果ok的话,就马上结贴咯-_-!  
  其他还有没有?Top

3 楼hahaheiheiheihei(送分)回复于 2005-06-03 09:25:04 得分 0

没有反应阿   好象  
  不知道是我建立表的字段的问题还是程序的问题,那位老兄能把三个表结构给我列一下吗?谢谢啊Top

4 楼asp1111()回复于 2005-06-03 09:27:40 得分 0

100MB   asp和   asp.net空间   50/1年  
  我看到了一个网站   100MB   asp和   asp.net空间   现在促销,  
  同学们可以做一个简单的个人网站用来找工作   ,  
    支持   asp.net   一年才50元!不要错过哦!!!  
  速度非常快,一般公司企业   足够用了!  
  http://www.hi876.com    
  希望能对大家有帮助Top

5 楼net_lover(【孟子E章】)回复于 2005-06-03 09:30:18 得分 0

http://sz.luohuedu.net/xml/Exam/MultiSelect.asp  
   
  代码:  
   
  <%@   Language=VBScript   %>  
  <%  
  '************************************************************************************************************  
  '  
  ' 单一文件版本Select下拉联动的数据库版本的实现  
  '  
  '  
  '************************************************************************************************************  
   
  %>  
  <html>  
  <title>联动下拉列表事例</title>  
  <body>  
  <script   language   =   "JavaScript">  
  <!--  
  //第一个select的onchange事件函数  
   
  function   RefreshSelect(o,n)  
  { if(n==2)   document.mxh.elements["s"+(n+1)].innerHTML=""  
  if(o.options[o.selectedIndex].value=="0")  
  document.mxh.elements["s"+n].innerHTML=""  
  else  
  {  
  document.mxh.btn.disabled   =   false  
  window.frames['hiddenFrame'].location.href   =   'MultiSelect.asp?pid='   +   o.options[o.selectedIndex].value+"&n="+n  
  }  
  }  
   
  function   getSelected()  
  {  
  for(i=1;i<4;i++)  
  {  
  if(document.mxh.elements["s"+i].selectedIndex   >-1)  
  alert("您选择了:"   +   document.mxh.elements["s"+i].options[document.mxh.elements["s"+i].selectedIndex].value   +   "   -   "   +   document.mxh.elements["s"+i].options[document.mxh.elements["s"+i].selectedIndex].text)  
  }  
  }  
  //-->  
  </script>  
  <form   name=mxh>  
  <input   value="页面的其它内容不会改变。"   style="width:90%"><br>  
  <select   name="s1"   onchange   =   "RefreshSelect(this,2)"><option   value="0">--请选择--</select>  
  <select   name="s2"   onchange   =   "RefreshSelect(this,3)"><option   value="0">--请选择--</select>  
  <select   name="s3"></select>  
  <input   type="button"   name='btn'   disabled   =   true   value   =   "查看选择"   onclick="getSelected()">  
  </form>  
  <iframe   name="hiddenFrame"   style="display:none"></iframe>  
  </body>  
  <%  
   
  '本程序分2部分,一个用来进行提交生成新数据的,一个用来初始化的,  
  '其实,这样对于理解并不是很有利,暂且这样实现,希望您能看的明白哦,放在两个文件里比较好理解啊  
   
  '1,初始化部分开始,主要工作:  
  'a,初始化第一个下拉列表  
   
  Dim   sql,rs,cn,i  
  i   =   0  
  Set   cn   =   Server.CreateObject("ADODB.Connection")  
  cn.Open   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source="   &   Server.MapPath("MultiSelect.mdb")  
  If   Request.QueryString("pid")   =   ""   Then  
  '初始化部分  
  Set   rs   =   cn.Execute("SELECT   *   FROM   Area   Where   pid=0")  
  Response.Write   "<script   language   =   'JavaScript'>"   &   vbCrLf  
  Response.Write   "var   arr1   =   new   Array()"   &   vbCrLf  
  Response.Write   "var   arr2   =   new   Array()"   &   vbCrLf  
   
  While   Not   rs.EOF  
  Response.Write   "arr1["   &   i   &   "]   =   '"   &   rs("id")   &   "'"   &   vbCrLf  
  Response.Write   "arr2["   &   i   &   "]   =   '"   &   rs("Name")   &   "'"   &   vbCrLf  
  i   =   i   +1  
  rs.MoveNext  
  Wend  
  '为安全起见  
  Response.Write   "window.onload   =   new   function()   {"   &   vbCrLf  
  Response.Write   "select1   =   document.mxh.s1"   &   vbCrLf  
  Response.Write   "for(i   =   1;i<arr1.length   +   1;i++)"   &   vbCrLf  
  Response.Write   "select1.options[i]   =   new   Option(arr2[i-1],arr1[i-1])"   &   vbCrLf  
  Response.Write   "}"   &   vbCrLf  
  Response.Write   "</script>"   &   vbCrLf  
  Else  
  '处理数据的提交  
  strTreeId   =   Request.QueryString("pid")  
  If   strTreeId   =   ""   Then   strTreeId   =   0  
  If   IsNumeric(strTreeId)   =   False   Then   strTreeId   =   0    
  Response.Clear  
  Response.Write   "<script   language   =   'JavaScript'>"   &   vbCrLf  
  Response.Write   "select"   &   Request.QueryString("n")   &   "   =   window.parent.document.mxh.s"   &   Request.QueryString("n")   &   vbCrLf  
  Response.Write   "select"   &   Request.QueryString("n")   &   ".innerHTML   =   ''"   &   vbCrLf  
  Response.Write   "select"   &   Request.QueryString("n")   &   ".options[0]   =   new   Option(""--请选择--"",""0"")"   &   vbCrLf  
  Set   rs   =   cn.Execute("SELECT   *   FROM   Area   Where   pid   =   "   &   Request.QueryString("pid"))  
  While   Not   rs.EOF  
  Response.Write   "select"   &   Request.QueryString("n")   &   ".options[select"   &   Request.QueryString("n")   &   ".length]   =   new   Option('"   &   Trim(rs("Name"))   &   "','"   &   rs("id")   &   "')"   &   vbCrLf  
  rs.MoveNext  
  Wend  
  Response.Write   "</script>"   &   vbCrLf  
  End   If  
  rs.Close  
  Set   rs   =   Nothing  
  cn.Close  
  Set   cn   =   Nothing  
  %>  
   
   
   
  数据库  
  http://sz.luohuedu.net/xml/Exam/MultiSelect.mdbTop

6 楼net_lover(【孟子E章】)回复于 2005-06-03 09:31:29 得分 0

注意asp文件名字为  
  MultiSelect.aspTop

7 楼Swanzy(平淡)回复于 2005-06-03 10:06:30 得分 0

不错不错,看看先。Top

8 楼superdullwolf(超级大笨狼,每天要自强,MVP)回复于 2005-06-04 04:48:26 得分 0

http://superdullwolf.cnzone.net  
   
  三级联动Top

9 楼asd119cn(http://skyakira.cnblogs.com)回复于 2005-06-04 08:56:49 得分 0

http://rumor.17560.net/dispbbs.asp?boardID=2&ID=1&page=1  
   
  风声的无限级下拉菜单,效果不错。不过没用过,基本用不上这么多的。Top

相关问题

  • 一个例子的出不了效果 为什么?
  • 关于网上stl例子的问题
  • 网上哪里有关于midas的例子?谢谢
  • 急需例子:从网上下载文件,谢谢
  • CShell教材网上哪儿有下载?谁有例子啊?
  • 谁有ASP.NET的OA(网上办公)例子呀 !
  • 挑战API!网上查了半天,没有一个例子
  • 网上VC界面例子太难了。有没有简单的例子啊。然后一点点的深
  • 例子??
  • 在memfile的例子里,m_dwKBPerSec参数有什么作用?(实际作用,有什么效果么)

关键词

  • .net
  • asp.net
  • asp
  • 关联
  • 表

得分解答快速导航

  • 帖主:hahaheiheiheihei

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo