几个数据联动 很简单~
建表:
****************************************************************
create table province(id int,name varchar(10)) --建立省表
create table city(id int,name varchar(10),pid int) --建立城市表 pid的值为省id的值,由此关联
insert into province values(1,'北京')
insert into province values(2,'贵州')
insert into city values(1,'北京1',1)
insert into city values(2,'北京2',1)
insert into city values(3,'贵州1',2)
insert into city values(4,'贵州2',2)
**************************************************************************
city3.asp //主调用文件
******************************************************************
<!--#include file="conn.asp"-->
<form name="form1">
省份<select name="sheng" οnchange="city_change(this.value)">
<%
set rs=server.createobject("adodb.recordset")
sql="select id,[name] from province" '从省表中读出所有省的数据
rs.open sql,conn,1,1
do while not rs.eof
%>
<option value="<%=rs("id")%>"><%=trim(rs("name"))%></option>
<%
rs.movenext
loop
rs.close
conn.close
set rs=nothing
set conn=nothing
%>
</select>
城市:<select name="city"></select>
</form>
<iframe src="about:blank" width=0 height=0 name="city_url"></iframe> <%'此框架用于传值%>
<script language=javascript>
function city_change(data)
{
if(typeof(data)=="string") //如果是点省改变的话,接接到的data为字符型,如果是框架(city_send3.asp)中调用此函数则为数组!
{
window.city_url.location.href="city_send3.asp?id="+data;//把省的id传过去
}
else
{
form1.city.options.length=0;//先清空城市中的所有数据
for(k=0;k<data.length;k++)
{form1.city.add(new Option(data[k][1],data[k][0]));//用select中add建立option选项
}
}
}
</script>
******************************************************************************
city_send3.asp //接收省id的值,然后根据省在数据库中查找需要的需市,然后调用主页面的函数
把值传回
*******************************************************************************
<!--#include file="conn.asp"-->
<script language=javascript>
var city_data=new Array(); //建立一个数据,用于存放所有城市数据
<%
set rs=server.createobject("adodb.recordset")
id=trim(request.querystring("id")) '接收传过来的省id
sql="select id,name from city where pid="&id 'pid 就是与省id关联的字段
rs.open sql,conn,1,1
city_count=0
do while not rs.eof
%>
city_data[<%=city_count%>]=new Array("<%=rs(0)%>","<%=rs(1)%>");
<%
rs.movenext
city_count=city_count+1
loop
rs.close
conn.close
set rs=nothing
set conn=nothing
%>
parent.city_change(city_data);//调用主框架的city_change函数,传的值city_data为数据库中所有城市数据
</script>
****************************************************************
create table province(id int,name varchar(10)) --建立省表
create table city(id int,name varchar(10),pid int) --建立城市表 pid的值为省id的值,由此关联
insert into province values(1,'北京')
insert into province values(2,'贵州')
insert into city values(1,'北京1',1)
insert into city values(2,'北京2',1)
insert into city values(3,'贵州1',2)
insert into city values(4,'贵州2',2)
**************************************************************************
city3.asp //主调用文件
******************************************************************
<!--#include file="conn.asp"-->
<form name="form1">
省份<select name="sheng" οnchange="city_change(this.value)">
<%
set rs=server.createobject("adodb.recordset")
sql="select id,[name] from province" '从省表中读出所有省的数据
rs.open sql,conn,1,1
do while not rs.eof
%>
<option value="<%=rs("id")%>"><%=trim(rs("name"))%></option>
<%
rs.movenext
loop
rs.close
conn.close
set rs=nothing
set conn=nothing
%>
</select>
城市:<select name="city"></select>
</form>
<iframe src="about:blank" width=0 height=0 name="city_url"></iframe> <%'此框架用于传值%>
<script language=javascript>
function city_change(data)
{
if(typeof(data)=="string") //如果是点省改变的话,接接到的data为字符型,如果是框架(city_send3.asp)中调用此函数则为数组!
{
window.city_url.location.href="city_send3.asp?id="+data;//把省的id传过去
}
else
{
form1.city.options.length=0;//先清空城市中的所有数据
for(k=0;k<data.length;k++)
{form1.city.add(new Option(data[k][1],data[k][0]));//用select中add建立option选项
}
}
}
</script>
******************************************************************************
city_send3.asp //接收省id的值,然后根据省在数据库中查找需要的需市,然后调用主页面的函数
把值传回
*******************************************************************************
<!--#include file="conn.asp"-->
<script language=javascript>
var city_data=new Array(); //建立一个数据,用于存放所有城市数据
<%
set rs=server.createobject("adodb.recordset")
id=trim(request.querystring("id")) '接收传过来的省id
sql="select id,name from city where pid="&id 'pid 就是与省id关联的字段
rs.open sql,conn,1,1
city_count=0
do while not rs.eof
%>
city_data[<%=city_count%>]=new Array("<%=rs(0)%>","<%=rs(1)%>");
<%
rs.movenext
city_count=city_count+1
loop
rs.close
conn.close
set rs=nothing
set conn=nothing
%>
parent.city_change(city_data);//调用主框架的city_change函数,传的值city_data为数据库中所有城市数据
</script>