单击表单触发函数查数据库,然后获取值

linsl 2009-08-04 01:19:49
<form name='myform'>

<select name="TopClassID" id="TopClassID">
<option selected value="">请选择省</option>

<option value="1">浙江</option>




</select>

<select name="BigClassID" id="BigClassID" >
<option selected value="">杭州市</option>
</select>

<select name="SmallClassID" id="SmallClassID" >
<option selected value="">西湖区</option>
</select>

邮编:
<input type="text" value="单击查询" onclick="js()">
</form>


选择地区后,,单击 邮编表单,触发一个函数,获取县的值,再根据县去查询数据库对应的邮编,


函数应该怎么写?
...全文
98 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
linsl 2009-08-04
  • 打赏
  • 举报
回复
  <!--#include file="conn.asp" -->

<%
sql = "select * from Bs_ProductClass where ClassType=2 order by ClassID asc"
set rs = conn.execute(sql)
%>
<script language = "JavaScript">
 var onecount;
 onecount=0;
 subcat = new Array();
<%
count1 = 0
do while not rs.eof
%>
subcat[<%=count1%>] = new Array("<%= trim(rs("ClassName"))%>","<%= trim(rs("ParentClassID"))%>","<%= trim(rs("ClassID"))%>");
<%
count1 = count1 + 1
rs.movenext
loop
rs.close
set rs=nothing
%>
onecount=<%=count1%>;

function changelocation(ClassID1)
{
  document.myform.BigClassID.length = 0;
  var ClassID1=ClassID1;
  var i;
  var op1 = document.createElement("OPTION");
  document.myform.BigClassID.options[0] = new Option('==所属大类名称==',' ');
  for (i=0;i < onecount; i++)
  {
    if (subcat[i][1] == ClassID1)
    {
      op1= new Option(subcat[i][0], subcat[i][2]);
      document.myform.BigClassID.options.add(op1);
    }
  }

}
</script>


<%sql2 = "select * from Bs_ProductClass where ClassType=3 order by ClassID asc"
set rs2 = conn.execute(sql2)
%>
<script language = "JavaScript">
var onecount2;
onecount2=0;
subcat2 = new Array();
<%
count2 = 0
do while not rs2.eof
%>
subcat2[<%=count2%>] = new Array("<%= trim(rs2("ClassName"))%>","<%= trim(rs2("ParentClassID"))%>","<%= trim(rs2("ClassID"))%>","<%= trim(rs2("postcode"))%>");
<%
count2 = count2 + 1
rs2.movenext
loop
rs2.close
set rs2=nothing
%>
onecount2=<%=count2%>;

function changelocation2(ClassID2)
{
  document.myform.SmallClassID.length = 0;

  var ClassID2=ClassID2;
  var j;
  var op2 = document.createElement("OPTION");
  document.myform.SmallClassID.options[0] = new Option('==所属小类名称==',' ');
  for (j=0;j < onecount2; j++)
  {
    if (subcat2[j][1] == ClassID2)
    {
      op2 = new Option(subcat2[j][0], subcat2[j][2]);
document.myform.SmallClassID.options.add(op2);

    }
  }

}


</script>

调用代码

<form name='myform'>

<select name="TopClassID" id="TopClassID" onChange="changelocation(document.myform.TopClassID.options.value)" size="1">
<option selected value="">请选择省</option>
<%

sql1 = "select * from Bs_ProductClass where ClassType=1 order by ClassID asc"
set rs1 = conn.Execute (sql1)
do while not rs1.eof
%>
<option value="<%=trim(rs1("ClassID"))%>"><%=trim(rs1("ClassName"))%></option>

<%
rs1.movenext
loop
rs1.close
set rs1 = nothing
conn.Close
set conn = nothing
%>
</select>

<select name="BigClassID" id="BigClassID" onChange="changelocation2(document.myform.BigClassID.options[this.options.selectedIndex].value)">
<option selected value="">==所有市==</option>
</select>

<select name="SmallClassID" id="SmallClassID" onchange="document.getElementById('postCode').value=this.options[this.selectedIndex].postCode;" >


<option selected value="">==所有县==</option>
</select>

邮编:
<input type="text" name="postCode" id="postCode">
</form>



to:lzp4881
按照你的方法,,我怎么把postcode数据放到option里去,因为option是读数组的
linsl 2009-08-04
  • 打赏
  • 举报
回复
是三级联动查询省市县,代码我去掉了,现在的问题是想根据县查 邮编
lzp4881 2009-08-04
  • 打赏
  • 举报
回复
用不着这样,你可以直接把邮编放到县下拉框里面在,在构造

<select name="SmallClassID" id="SmallClassID" >
<option selected value="">西湖区</option>
</select>
的时候就把邮编查询出来,放到里面,选择后显示出来就行了,象这样

<select name="SmallClassID" id="SmallClassID" onchange="document.getElementById('postCode').value=this.options[this.selectedIndex].postCode;" >
<option selected value="" postCode="123456">西湖区</option>
<option selected value="" postCode="234567">xxx区</option>
...
</select>

邮编:
<input type="text" name="postCode" id="postCode">
郭大侠_ 2009-08-04
  • 打赏
  • 举报
回复
你这叫三级联动,不能每次都查询数据库,这样的话效率会很低.只能在页面加载时将数据一次性载入,然后用js实现联动效果,你可以参考下我在网上找的一个例子http://www.cnblogs.com/guodaxia/archive/2009/05/29/1491693.html

cpp2017 2009-08-04
  • 打赏
  • 举报
回复
function $(id)
{
return document.getElementById(id);
}
function js()
{
var v1 = $("TopClassID").value;
var v2 = $("BigClassID").vlaue;
var v3 = $("SmallClassID").vlaue;
var zipcode = //然后根据v1,v2,v3用ajax去查询

alert(zipcode);

}

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧