CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

高分寻求ASP源代码。

楼主dmm217(零点杀手)2003-01-03 20:46:42 在 Web 开发 / ASP 提问

要求,与Access数据库连接,需有2个或多个下拉框,当一个下拉框的内容选定时,其余1个或2个中的内容也相应变化(如选择北京市时,其余一个就会出现北京市的几个区)。我找了好长时间没找到,还望各位帮帮忙吧! 问题点数:0、回复次数:17Top

1 楼dmm217(零点杀手)回复于 2003-01-03 20:58:45 得分 0

各位好心人,帮帮我吧!有的话发到我信箱dmm217@sina.comTop

2 楼dmm217(零点杀手)回复于 2003-01-04 08:22:34 得分 0

有好心人响应一下啊!救救我吧!Top

3 楼HLPACK(景天)回复于 2003-01-04 11:34:12 得分 0

我的能实现不过需要用到JavaScriptTop

4 楼HLPACK(景天)回复于 2003-01-04 11:47:41 得分 0

'我用的是SQL,用到查询变量,你自己改一下吧,  
  '假设有两个下拉列表,如果SELECT1改变则SELECT2也改变:  
  '假设你有一个区域表,它有一个TYPE字段用来记录该记录是哪个区哉的,对就于变量displaytype,其实你还可以把SELECT1也用数据库边起来,这里我就不多写了,你改一下吧  
   
  '有些数据库边接我省了  
   
  <script   language="JavaScript">  
  function   changedisplaytype(selvalue)  
  {  
  displaytype=selvalue;  
  location.href="/test/personal/default.asp?select="   +   displaytype;  
  }  
  </script>  
  <%  
  displaytype=Request.QueryString("DisplayType")  
   
  If   displaytype=""   then   displaytype=1     '第一次进入时默认显示第一条  
   
  Set   CON1   =   Server.CreateObject("ADODB.Connection")  
  CON1.Open   "PROVIDER=SQLOLEDB;DATA   SOURCE=WWW;UID=;PWD=;DATABASE="  
  Set   Rs1=Server.CreateObject("ADODB.Recordset")  
  %>  
  <p>选择<select   name="select1"   onChange="javascript:changedisplaytype(this.value);">  
  <option   value="北京">北京</option>  
  <option   value="天津">天津</option>  
  ....  
  </select></p>  
  <%  
  mysql="Select   *   From   区域表   Where   type='"   &   displaytype   &   "'"  
  Set   RS1=CON1.EXECUTE(mysql)  
  Response.Write   "<select   name='select2'>"  
  While   NOT   RS1.EOF  
          rstemp=RS1("typename")  
          valuetemp=RS1("papertype_id")  
          Response.Write   "<option   value="   &   valuetemp   &   "   "   &   selected(displaytype,valuetemp)   &   ">"   &   rstemp   &   "</option>"  
          RS1.MOVENEXT  
  WEND    
  Response.Write   "</select>"  
  %>Top

5 楼dmm217(零点杀手)回复于 2003-01-04 16:41:42 得分 0

HLPACK(黑&gt;&gt;)   你好!还得再麻烦您。我实在是太笨了。关于您说的那个下拉框数据关联问题,我还没解决。不知道您是否有时间给我做一个例子。用Access库。假设有表mytable,表中2个域:项目名称、项目号。项目名称和项目号是一一对应的,选中项目名称就相当于选定项目号。我得信箱是dmm217@sina.com.企盼恢复!谢谢!Top

6 楼allforly(白衣胜血)回复于 2003-01-04 18:34:46 得分 0

province表:id[自动编号],province[文本]  
  city表:id[自动编号],province[数字],city[文本]  
   
  <script   language="javascript">  
  var   xmlhttp   =   new   ActiveXObject("Microsoft.XMLHTTP")  
  function   getcity(str){  
  xmlhttp.open("POST","city.asp",false)  
                    xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")  
                    xmlhttp.send("id="+str)  
  if(xmlhttp.readyState==4){  
  var   xmldoc   =   new   ActiveXObject("Microsoft.XMLDOM")  
  xmldoc.load(xmlhttp.responseXML)  
  xmldoc.async   =   false  
  var   a   =   xmldoc.selectNodes("//citylist")  
  for   (m=winform.city.options.length-1;m>0;m--)  
  winform.city.options[m]=null  
  for(i=0;i<a.length;i++){  
  winform.city.options[i]   =   new   Option(a[i].selectSingleNode("name").text,a[i].selectSingleNode("id").text)  
  }  
  }  
  }  
  </script>  
   
  <form   name="winform">  
  <select   name="province"   onchagne="getcity(this.value)">  
  ......省略省份列表  
  </select>  
  <select   name="city">  
      <option   value="0">--请选择--</option>  
  </select>  
  </form>  
   
   
  city.asp  
  <%@language=vbscript%>  
  <%option   explicit%>  
  <!--#include   file="conn.asa"-->  
  <%  
  response.ContentType="text/xml"  
  response.CharSet="gb2312"  
  dim   sql,rs  
  dim   id  
  id   =   request.form("id")  
  if   Request.ServerVariables("REQUEST_METHOD")="POST"   then  
  sql   =   "select   *   from   city   where   province="&id  
  set   rs   =   conn.Execute(sql)  
  if   not   (rs.eof   or   rs.bof)   then  
  %>  
  <?xml   version="1.0"   encoding="gb2312"?>  
  <city>  
  <%while   not   rs.eof%>  
      <citylist>  
          <id><%=rs("id")%></id>  
          <name><%=rs("city")%></name>  
      </citylist><%  
  rs.movenext  
  wend  
  rs.close  
  %>  
  </city>  
  <%else%>  
  <?xml   version="1.0"   encoding="gb2312"?>  
  <city>  
      <citylist>  
          <id>0</id>  
          <name>--请选择--</name>  
      </citylist>  
  </city>  
  <%end   if%>  
  <%end   if%>Top

7 楼y7967(三千)回复于 2003-01-04 19:27:27 得分 0

看看用Dreamweaver怎么做的,Access数据库:  
   
  二级连动菜单教程:  
  http://211.101.238.39/udsky/exmples/udskymenu/01.htm  
  三级连动菜单教程(插件+代码分析+教程):  
  http://211.101.238.39/udsky/exmples/dymacselectbox/01.htmTop

8 楼dmm217(零点杀手)回复于 2003-01-05 08:26:51 得分 0

y7967(能睡三天)   朋友,这不是动态的,当我增加数据时还需从新关联。不适用。因为我的项目号和项目名称每天都是在添加的,不是不变的。要是不变的我可以用数组解决,但是变为动态的时候我不知道该怎么做了。Top

9 楼HLPACK(景天)回复于 2003-01-05 20:30:46 得分 0

dmm217(零点杀手):  
                好的,明天发给你,今天一天没上网了,晚上才来CSDNTop

10 楼HLPACK(景天)回复于 2003-01-05 20:32:02 得分 0

allforly(白衣胜血)   的可以用,你先试试他的吧Top

11 楼dmm217(零点杀手)回复于 2003-01-06 09:20:50 得分 0

HLPACK(黑&gt;&gt;)   你好,allforly(白衣胜血)代码我试过了,是不错的。能解决有固定的数据问题。但是我的库是动态改变的,每天都要加入几个项目。库说起很简单,用VB实现起来也很容易,但是ASP就不好实现了。用Access库。假设有表mytable,表中2个域:项目名称、项目号。项目名称和项目号是一一对应的,选中项目名称就相当于选定项目号。不使用那种在Access中建立查询那种象   y7967(能睡三天)介绍的用Dreamweaver做的,如果你有时间就给我做一个例子吧。我想了好几天了。谢谢!  
  Top

12 楼dmm217(零点杀手)回复于 2003-01-06 09:32:51 得分 0

对了HLPACK(黑&gt;&gt;),我的下拉框的内容是这样和数据库相连的:  
  <%  
   
  set   rs=server.createobject("adodb.recordset")    
  conn   =   "DBQ="   +   server.mappath("message.mdb")   +   ";DefaultDir=;DRIVER={Microsoft   Access   Driver   (*.mdb)};"    
     
  sql=   "Select   *   from   项目表"        
  rs.open   sql,conn,1,1    
     
  %>    
  <select   name=caption   style=background-color:#6699FF;font-size:9pt;color:#ffffff    
  >                                                
                          "<option   selected>项目名称</option>                                              
    <%     do   while   not   rs.eof                                              
                                               
   
  dd=   rs.fields("项目名称")      
  tt=rs.fields("项目号")%>                                          
    document.write("<option><%=dd%></option>");                                                                                                                                                                                            
  <%rs.movenext                                                                                                                                                                                            
  loop   %>                                                                                                                                                                                                      
        </select>   
  Top

13 楼scu96124678(冰河)回复于 2003-01-06 09:45:34 得分 0

也给我发一个吧,谢谢  
  suncathay@hotmail.comTop

14 楼gamebill(感谢你的帮助)回复于 2003-01-06 09:52:41 得分 0

ASP文件:  
  <%@   Language=VBScript   %>  
  <%Option   Explicit%>  
  <html>  
  <head>  
  <title>List</title>  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">  
  <%  
  dim   conn  
  dim   rs  
  dim   sql  
  dim   count  
  dim   rs1  
  dim   sql1  
   
   
  set   conn   =   server.CreateObject   ("adodb.connection")  
  conn.Open   "test","sa",""  
   
   
  sql   =   "select   *   from   district   order   by   locationid   asc"  
  set   rs   =   conn.execute(sql)  
  %>  
  <script   language   =   "JavaScript">  
  var   onecount;  
  onecount=0;  
  subcat   =   new   Array();  
                  <%  
                  count   =   0  
                  do   while   not   rs.eof    
                  %>  
  subcat[<%=count%>]   =   new   Array("<%=   trim(rs("districtname"))%>","<%=   trim(rs("locationid"))%>","<%=   trim(rs("districtid"))%>");  
                  <%  
                  count   =   count   +   1  
                  rs.movenext  
                  loop  
                  rs.close  
                  set   rs=nothing  
                  %>  
  onecount=<%=count%>;  
   
  function   changelocation(locationid)  
          {  
          document.myform.smalllocation.length   =   0;    
   
          var   locationid=locationid;  
          var   i;  
          document.myform.smalllocation.options[0]   =   new   Option('====所有地区====','');  
          for   (i=0;i   <   onecount;   i++)  
                  {  
                          if   (subcat[i][1]   ==   locationid)  
                          {    
                                  document.myform.smalllocation.options[document.myform.smalllocation.length]   =   new   Option(subcat[i][0],   subcat[i][2]);  
                          }                  
                  }  
                   
          }          
  </script>  
  </head>  
  <body>  
  <form   name="myform"   method="post">  
          <select   name="biglocation"   onChange="changelocation(document.myform.biglocation.options[document.myform.biglocation.selectedIndex].value)">  
                  <%  
                   
                  sql1   =   "select   *   from   location   order   by   locationname   asc"  
                  set   rs1   =   conn.Execute   (sql1)  
                  do   while   not   rs1.eof  
                  %>  
                  <option   value="<%=trim(rs1("locationid"))%>"><%=trim(rs1("locationname"))%></option>  
                  <%  
                  rs1.movenext  
                  loop  
                  rs1.close  
                  set   rs1   =   nothing  
                  conn.Close  
                  set   conn   =   nothing  
                  %>  
          </select>  
          <select   name="smalllocation">  
                  <option   selected   value="">==所有地区==</option>  
          </select>  
  </form>  
  <script   LANGUAGE="javascript">    
          changelocation(document.myform.biglocation.options[document.myform.biglocation.selectedIndex].value);    
  </script>  
  </body>  
  </html>  
   
   
  数据库:  
  create   table   location  
  (  
   
  locationid   char(2)   not   null   primary   key,  
  locationname   char(50)   not   null  
   
  )  
   
   
  create   table   district  
  (  
   
  districtid   char(3)   not   null   primary   key,  
  districtname   char(50)   not   null,  
  locationid   char(2)   not   null  
  )Top

15 楼dmm217(零点杀手)回复于 2003-01-06 10:35:02 得分 0

感谢你的帮助,你的那段代码我看来,很明白的。刚才我可能是没说清楚。我再说一下吧!我用Access库。假设有表mytable,表中2个域:项目名称、项目号。项目名称和项目号是一一对应的。这些项目是每天更新的,主要是增加。有两个下拉框,初始化时“项目名称”框中从数据库中读出所有的项目名供用户选择,当选中“项目名称”框中某一项目时就会在“项目号”框中自动显示该项目的项目号。我的问题就是不知道该怎么写入项目号。你要是有时间麻烦您做一个例子吧!我实在是太笨了啊。  
  Top

16 楼antiking(生活就象拉大便有时顺畅有时不顺畅.)回复于 2003-01-06 10:40:46 得分 0

用onchanged=submit()可以的不过你要考虑值变换时的在下拉框保存原来的值不变Top

17 楼theghost(鬼魅)回复于 2003-01-06 10:46:55 得分 0

你的源码这只是一个select,另一个需要连动的呢?Top

相关问题

  • asp源代码!
  • 400分寻求有较好学习价值的JSP源代码!
  • 高分寻求ASP.NET(C#)源代码保护(加密)方案!
  • 高分寻求C#源代码保护(加密)方案!
  • 寻求WinCE源代码。
  • 分析源代码!
  • 送分!源代码
  • 谁下载过 江湖的ASP源代码啊,300分求购
  • 200分求index server的站内搜索asp源代码!!急用!
  • 高分索取一个漂亮点的BBS(ASP源代码)

关键词

得分解答快速导航

  • 帖主:dmm217

相关链接

  • Web开发类图书

广告也精彩

反馈

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