无为清净楼资源网 Design By www.qnjia.com
公司做项目的时候,需要用到下拉框联动显示数据的功能,索性利用Ajax来实现,看到时间比较充裕,就没去找demo自己去想方法写了。纯自己的想法,有些可能比较弱智,希望不要见笑。
页面中的两个下拉列表框:
<tr> <td style="width: 130px"> 所在学院:</td> <td style="width: 100px"> <select id="college" style="width: 200px" runat="server" onchange="changcollege(this.value)"> <option value="0"> --请选择所在学院学院-- </option> </select></td> </tr> <tr> <td style="width: 130px"> 所在专业:</td> <td style="width: 100px"> <select id="specialty" style="width: 200px" runat="server" onchange="SaveSpecical(this.value)"> <option value="0"> --请选择所在专业-- </option> </select></td> </tr>
JS脚本代码:
<script type="text/javascript"> var http_request = false; function send_request(method,url,content,responseType,callback)//定义发送请求的函数 { http_request=false; if(window.XMLHttpRequest) { http_request=new XMLHttpRequest(); if(http_request.overrideMimeType) { http_request.overrideMimeType("text/xml"); } } else { try { http_request=new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { http_request=new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} } } if(!http_request) { window.alert("创建XMLHttpRequest对象失败"); return false; } if(responseType.toLowerCase()=="text") { http_request.onreadystatechange=callback; } else { window.alert("ERR"); return false; } if(method.toLowerCase()=="get") { http_request.open(method,url,true); } else if(method.toLowerCase()=="post") { http_request.open(method,url,true); http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); } else { window.alert("Err"); return false; } http_request.send(content); } function changcollege(va)//当学院下拉列表发生改变时触发的脚本事件 { if(va!='0') { var speciality = document.getElementById("specialty"); speciality.disabled=false; var url="Handler.ashx"+va; send_request("GET",url,null,"text",populateClass3); } } function populateClass3()//Ajax执行成功的回调函数 { var f=document.getElementById("specialty"); if(http_request.readyState==4) { if(http_request.status==200) { var list=http_request.responseText; var classList=list.split("|"); f.options.length=1; for(var i=0;i<classList.length;i++) //将取得的结果添加到下级的列表框中 { var tmp=classList[i].split(","); f.add(new Option(tmp[1],tmp[0])); } } else { alert("您所请求的页面有异常。"); } } } </script>
我们将http请求发送给服务端的Handler.ashx进行处理。
public class Handler : IHttpHandler { public void ProcessRequest(HttpContext context) { string type = context.Request.QueryString["type"]; if (type.Equals("college")) { string id = context.Request.QueryString["id"]; context.Response.ContentType = "text/plain"; context.Response.Write(getSpecialty(id));//这个是从数据库中根据传来省的id 查询出来的。学院的名字和主键,主键以便去查专业的名字 } } public string getSpecialty(string college) { DataSet ds = GetInformation.GetSpecialtyInfo(college); string str = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (i == ds.Tables[0].Rows.Count - 1) { str += ds.Tables[0].Rows[i]["SpecialtyID"].ToString() + "," + ds.Tables[0].Rows[i]["SpecialtyName"].ToString(); } else { str += ds.Tables[0].Rows[i]["SpecialtyID"].ToString() + "," + ds.Tables[0].Rows[i]["SpecialtyName"].ToString() + "|"; } } return str.Trim(); } public bool IsReusable { get { return false; } } }
根据学院的编号获得相应的专业,并将专业的名称用“|”分割组合成字符串返回给客户端,客户端脚本拆分字符串添加到下拉框中。
这里只是二级的联动显示,三级联动数据的现实原理是一样的。
本文的全部内容就到此结束了,希望大家学习Ajax实现下拉框联动显示数据有所帮助。
无为清净楼资源网 Design By www.qnjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无为清净楼资源网 Design By www.qnjia.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月16日
2024年11月16日
- 第五街的士高《印度激情版》3CD [WAV+CUE][2.4G]
- 三国志8重制版哪个武将智力高 三国志8重制版智力武将排行一览
- 三国志8重制版哪个武将好 三国志8重制版武将排行一览
- 三国志8重制版武将图像怎么保存 三国志8重制版武将图像设置方法
- 何方.1990-我不是那种人【林杰唱片】【WAV+CUE】
- 张惠妹.1999-妹力新世纪2CD【丰华】【WAV+CUE】
- 邓丽欣.2006-FANTASY【金牌大风】【WAV+CUE】
- 饭制《黑神话》蜘蛛四妹手办
- 《燕云十六声》回应跑路:年内公测版本完成95%
- 网友发现国内版《双城之战》第二季有删减:亲亲环节没了!
- 邓丽君2024-《漫步人生路》头版限量编号MQA-UHQCD[WAV+CUE]
- SergeProkofievplaysProkofiev[Dutton][FLAC+CUE]
- 永恒英文金曲精选4《TheBestOfEverlastingFavouritesVol.4》[WAV+CUE]
- 群星《国风超有戏 第9期》[320K/MP3][13.63MB]
- 群星《国风超有戏 第9期》[FLAC/分轨][72.56MB]