利用ASP嵌套JS+SQL Server打造两级连动下拉框

王朝mssql·作者佚名  2006-11-24
宽屏版  字体: |||超大  

随着网络技术的迅速发展,越来越多的电子商务网站也应运而生。而在构建一个功能强大的电子商务网站往往少不了提供网上注册功能给客户自行注册这个模块,为了尽可能方便客户填写信息,我们经常要用到下拉框供客户选择,特别是两级连动下拉框最为常用。

再说,本人今日发现CSDN论坛上也经常有网友提问这个问题,就是,需要一个两级连动下拉框,第一个显示省份名称,第二个显示相应的城市名。为了解答这个问题,我特别写这篇文章,希望能对需要这方面资料的网友有所帮助。

首先,我们先来设计数据库(SQL Server 7.0)

● 数据库名:DB_ProvinceCat

● 表名:1)Tb_Province 2)Tb_City

说明:表Tb_Province用来存放省份名称;表Tb_City用来存放相应的城市名称。

● 字段名的设计

1) 表Tb_Province的字段有省份ID号(ProvinceCatID)、省份代码(ProvinceCode)、省份名称(ProvinceName),表1给出了示例:

ProvinceCatID ProvinceCode ProvinceName

1 01 北京市

2 02 上海市

3 03 天津市

4 04 重庆市

5 05 广东省

6 06 浙江省

7 07 福建省

8 08 海南省

9 09 江苏省

表1

2) 表Tb_City的字段有城市ID号(CityID)、城市代码(CityCode)、城市名称(CityName),表2给出了示例:

CityID CityCode CityName

1 01001 北京市

2 02001 上海市

3 03001 天津市

4 04001 重庆市

5 05001 广州市

6 05002 深圳市

7 05003 珠海市

8 05004 茂名市

9 05005 中山市

10 06001 杭州市

11 06002 温州市

12 07001 福州市

13 07002 厦门市

14 08001 海口市

15 08002 三亚市

16 08003 万宁市

17 08004 五指山市

18 09001 南京市

19 09002 苏州市

表2

说明:这里要注意的一点就是,身份代码要对应城市代码的头两位。

其次,写代码。下面是一个完整的源代码:

TwoLevel.asp

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<meta name="GENERATOR" content="Microsoft FrontPage 4.0">

<meta name="ProgId" content="FrontPage.Editor.Document">

<title>下拉列表示例</title>

</head>

<%

dim conn

dim connstr

on error resume next

set conn=server.CreateObject("ADODB.connection")

connstr="driver={SQL Server};server=wen;uid=sa;pwd=;database=DB_ProvinceCat"

conn.Open connstr

set Rs=server.createobject("ADODB.recordset")

Rs.CursorLocation = adUseClient

SQL="Select * from Tb_Province"

Rs.open SQL,conn,1,1

if Not Rs.Eof then

Dim strJScript

strJScript=""

Response.Write("<SCRIPT language=JavaScript>")&chr(13)

Response.Write("function setcategory(S){")&chr(13)

Response.Write("S.category.length="+Cstr(Rs.Recordcount+1)+";")&chr(13)

dim i

i=0

While Not Rs.Eof

strJScript=strJScript+"S.category.options["+CStr(i)+"].value="+chr(34)+Trim(Rs("ProvinceCode"))+chr(34)+";"+chr(13)

strJScript=strJScript+"S.category.options["+CStr(i)+"].text="+chr(34)+Trim(Rs("ProvinceName"))+chr(34)+";"+chr(13)

i=i+1

Rs.MoveNext

Wend

Response.write(strJScript)

Response.Write("S.category.options["+CStr(i)+"].value="+chr(34)+"无"+chr(34)+";"+chr(13))

Response.Write("S.category.options["+CStr(i)+"].text="+chr(34)+"**请选择省份**"+chr(34)+";"+chr(13))

Response.Write("S.c

[1] [2] [3] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有