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

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>


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


函数应该怎么写?
...全文
143 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);

}

【更新至2025年】2001-2025年上市公司数字化转型年报词频统计(吴非、赵宸宇、甄红线)(300+年报词频统计) 1、时间:2001-2025年 2、来源:上市公司年报 3、参考文献:企业数字化转型与资本市场表现——来自股票流动性的经验证据(吴非) 数字化转型如何影响企业全要素生产率(赵宸宇) 知识产权行政保护与企业数字化转型(甄红线) 4、方法说明:(1)参考吴非老师的做法,对人工智能技术、大数据技术、云计算技术、区块链技术、数字技术运用五个维度76个数字化相关词频进行统计 (2)参考赵宸宇老师的做法,对数字技术应用、互联网商业模式、智能制造、现代信息系统四个维度99个数字化相关词频进行统计 (3)参考甄红线老师的做法,对技术分类、组织赋能、数字化应用等类别下139个数字化相关词频进行统计 5、指标:年份、股票代码、公司简称、行业名称、行业代码、全文-文本总长度、仅中英文-文本总长度、人工智能技术-吴、大数据技术-吴、云计算技术-吴、区块链技术-吴、数字技术运用-吴、数字技术应用-赵、互联网商业模式-赵、智能制造-赵、现代信息系统-赵、技术分类-人工智能技术-甄、技术分类-区块链技术-甄、技术分类-云计算技术-甄、技术分类-大数据技术-甄、组织赋能-人工智能技术-甄、组织赋能-云计算技术-甄、组织赋能-大数据技术-甄、组织赋能-广义数字技术-甄、数字化应用-技术创新-甄、数字化应用-流程创新-甄、数字化应用-业务创新-甄、人工智能、商业智能、图像理解、投资决策辅助系统、智能数据分析、智能机器人、机器学习、深度学习、语义搜索、生物识别技术、人脸识别、语音识别、身份验证、自动驾驶、自然语言处理、大数据、数据挖掘、文本挖掘、数据可视化、异构数据、征信、增强现实、混合现实、虚拟现实、云计算、流计算、图计算、内存计算、多方安全计算、类脑计算、绿色计算、认知计算等300+词频

28,404

社区成员

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

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