简单的数据联动

几个数据联动 很简单~
建表:
****************************************************************
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>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值