首页 > 编程语言 >ASP二级联动菜单制作

ASP二级联动菜单制作

时间:2022-11-15 22:31:29浏览次数:43  
标签:Province City ASP set rs 菜单 联动 sql select


       具体做法如下:

       1.设计数据库

      

      

      

id—自动编号 ProvinceName—省名 ProvinceNo—省名编号 ProvinceOrder—省排序编号


省表

id

ProvinceName

ProvinceNo 

ProvinceOrder 

1

北京市

1

1

2

安徽省

2

2

3

山东省

3

3

4

内蒙古自治区 

4

4


      

      

      

      


市表

id

CityName

CityNo

CityOrder 

ProvinceID 

1

北京市

1

1

1

2

合肥市

2

2

2

3

芜湖市

3

3

2

4

安庆市

4

4

2

5

济南市

5

5

3

6

呼和浩特市

6

6

4


         以下市名略。

        

        

       

        用Javascript和Vbscript将Province和City表中的数据读出来并使Province_select和City_select联系起来,这一步是整个程序的关键所在。
       

需要包含一个链接数据库的网页dbpass.asp。内容如下:

<%
Const constDSN = "NpoMy"
Const constUID = "sa"
Const constPWD = "sa"
%>

需要在开始 

联动网页代码:

<!--#include file="includes/dbpass.asp"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>二级联动菜单</title>
<%
'连接数据库
dim db,conn,rs_Province,rs_City
set conn = server.createobject("adodb.connection")
conn.open constDSN, constUID, constPWD
%>

<script language=JavaScript>
 <%
 dim sql,i,j
 '//读出 Province 表//
 set rs_Province= server.createobject("adodb.recordset")
 sql="select * from changeless.dbo.Province order by ProvinceOrder"
 rs_Province.open sql,conn,1,1,&h0001
 %>

 var selects=[];
 selects['yyy']=new Array(new Option('请选择城市……','yyy'));

 <%
 for i=1 to rs_Province.recordcount
 %>
 

selects['<%=rs_Province("ProvinceNo")%>']=new Array(
 <%
 '//读出 City 表//
 set rs_City= server.createobject("adodb.recordset")
 sql="select * from changeless.dbo.City where ProvinceID="&rs_Province("ProvinceNo")&" order by CityOrder"
 rs_City.open sql,conn,1,1,&h0001
 if rs_City.recordcount>0 then
    for j=1 to rs_City.recordcount
    if j=rs_City.recordcount then
 %>new Option('<%=trim(rs_City("CityName"))%>','<%=trim(rs_City("CityNo"))%>'));
 <%else%>
 new Option('<%=trim(rs_City("Cityname"))%>','<%=trim(rs_City("CityNo"))%>'), 
 <%
  end if
  rs_City.movenext
  next    
 else
 %>
 new Option('','0')); 
 <%
 end if
 rs_City.close
 set rs_City=nothing
 rs_Province.movenext
next
rs_Province.close
set rs_Province=nothing
%>

<!--//JavaScript控制联动///-->
function chsel(){
 with (document.form1){
   if(Province_select.value!="yyy") {
  City_select.options.length=0;
  City_select.add(selects['yyy'][0]);
  for(var i=0;i<selects[Province_select.value].length;i++){
    City_select.add(selects[Province_select.value][i]);
   }
  }
 }
 }

</script>
</head>
<body>
<FORM name="form1">
<!--//Province_select下拉列表//-->
<select name="Province_select" onChange=chsel()>
<option value="xxx" selected>请选择省份……</option>
 <%
  dim tmpid  '定义一个临时变量用来记住省id
  tmpid=0
 
  set rs_Province=server.CreateObject("ADODB.recordset")
  sql="select * from changeless.dbo.Province order by ProvinceOrder"
  rs_Province.open sql,conn,1,1
  while not rs_Province.eof
  tmpid=rs_Province("id")
  %>
 <option value="<%=rs_Province("ProvinceNo")%>" ><%=trim(rs_Province("ProvinceName"))%></option>
 <%
  'response.Write form1.province_select.value
  rs_Province.movenext
  wend
  rs_Province.close
  set rs_Province=nothing
 %>
 </select>

 <select name="City_select">
 <option value="yyy" selected="selected">-城市-</option>
 </select>

</FORM>
</body>
</html>

    

     

标签:Province,City,ASP,set,rs,菜单,联动,sql,select
From: https://blog.51cto.com/haibo0668/5854374

相关文章

  • ASP.NET 路由
    ASP.NET路由使您可以使用不必映射到网站中特定文件的URL。由于URL不必映射到文件,所以可以在Web应用程序中使用URL,这些URL是描述性的用户操作,因......
  • el-menu 菜单不高亮
    问题在部分页面el-menu的菜单栏不会高亮。分析初步分析是default-active的默认路径和当前页面的路由地址不同。打印下来果然——默认激活的路径中把中文转码了。......
  • BlazorServer[Object reference not set to an instance of an object.] at Microsoft
       看了反汇编感觉应该是路由出了问题。仔细看了发现了问题(只是没想到会导致运行后才蹦。。。你倒是可以先提醒下的,搞得很崩溃) 错误原因:Razor页面中的page属性存......
  • ASP .NET Core 集成 Loki 记录日志
    简介GrafanaLoki是一个水平可扩展,高可用性,多租户的日志聚合系统,由Grafana团队设计和开发,基于Apatch2.0开源。其有三部分组成:Loki是主服务器,负责存储日志和处理查询......
  • ASP.NET Core教程-Configuration(配置)-预定义中间件-静态文件支持
    更新记录转载请注明出处:2022年11月15日发布。2022年11月12日从笔记迁移到博客。基本使用使用UseStaticFiles()中间件即可支持静态文件,然后将静态文件放在根目录......
  • vue + el-menu 动态加载 一二级菜单 侧边栏
    1.HTML<template><divclass="container"><divclass="top">上</div><divclass="main"><!--动态加载侧边栏首先分为可折叠的......
  • java三级菜单遍历
     java三级菜单遍历@OverridepublicList<YjztCity>getYjzt(){List<YjztCity>yjztCities=yjztCityMapper.selectByExample(null);//先获取你想要......
  • Win11右键菜单改为Win10设计【自用】
    出处:【Win11右键菜单改为Win10设计】https://www.bilibili.com/video/BV1gB4y1L7Uj?vd_source=5e9bda91f690b8bf5340dc78c84bccbd修改:reg add HKCU\Software\Classes\C......
  • 用asp.net 实现断点续传 (HTTP)
    ​HTML部分 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="up6.index" %><!DOCTYPE html PUBLIC "-//W3C//DTDXHTM......
  • HTTP Error 500.31 - Failed to load ASP.NET Core runtime
    使用ASP.NETCoreDiagnosticsforIIS/IISExpressCannotlocateruntimeconfigfileHttpApi.Host\HttpApi.Host.runtimeconfig.json HTTPError500.31-Failedt......