ajax实现下拉框(<select>)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ajax实现下拉框(<select>),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2369字,纯文字阅读大概需要4分钟。
内容图文
许多页面上都涉及有下拉框,即select标签。对于简单的下拉框,被选择的数据是不需要改变的,我们可以用<option></option>写死。这样下拉框的数据永远都是那几条。
示例:
1 < select > 2 < option >信息一</option>3<option>信息二</option>4<option>信息三</option>5<option>信息四</option>6</select>
但是有些项目或者工程是需要将数据库中的数据呈现出来并提供选择的,下拉的内容会随数据库中数据的变化而变化。首先我们有asp组件可以帮我们做这这件事
情,DropDownList组件,只需要将数据库中查询得到的数据添加进该组件中,在前台即可以显示出动态下拉的效果。如果想更有新意,不依赖于传统组件,ajax就是
个不错的选择。下面一步步来通过ajax实现动态下拉的效果。
1.js发出ajax请求:
1 $(document).ready(function () { 2 $.ajax({ 3 timeout: 3000, 4 async: false, 5 type: "POST", 6 url: "WareHouse.ashx", 7 dataType: "json", 8 data: { 9 warehouse: $("#issued_sub_key_c").val(), 10 }, 11 success: function (data) { 12for (var i = 0; i < data.length; i++) { 13 $("#issued_sub_key_c").append("<option>" + data[i].Name + "</option>"); 14 } 15 } 16 }); 17 });
ajax请求WareHouse.ashx(一般处理程序)来获得数据,请求成功后将返回的json数据附加到id为issued_sub_key_c的select标签。值得注意的是这里将async的属性改为了false,async的默认状态为true,即为异步。值改为false就是同步了。但是当async为false的时候,ajax请求完数据之前,浏览器一直处于锁死状态,这样会让使用者认为程序崩溃了,所以就人为的添加了一个超时(timeout),这样就不会出现程序崩溃的假象。回到话题开始,为什么要将async改为false呢?原因就是当ajax是异步请求的时候进入到页面后出现下拉框数据还未同步,下拉框是空白数据(可以自己体验体验)。所以我们需要利用同步的特性并配合超时来完成下拉框的数据同步。
2.一般处理程序:从数据库返回的数据是List<string>类型,我们需要自己定义一个toJson()方法将list转化为json数据,然后返回json数据。
1 public string toJson(List<string> str) 2 { 3 StringBuilder json = new StringBuilder(); 4 5if (str == null) 6 { 7return"null"; 8 9 } 1011 json.Append("["); 12foreach (var item in str) 13 { 14 json.Append("{\"Name\":\""); 15 json.Append(item); 16 json.Append("\"},"); 17 } 1819return json.ToString().Substring(0, json.ToString().LastIndexOf(",")) + "]"; 20 } 212223/*得到并关联仓库(select标签)*/2425publicvoid ProcessRequest(HttpContext context) 26 { 2728 SubinventoryDC subinventorydc = new SubinventoryDC(); 2930 List<string> list = new List<string>(); 3132 list = subinventorydc.getAllSubinventory(); 3334string json = toJson(list); 3536 context.Response.ContentType = "text/plain"; 3738 context.Response.Write(json); 39 }
3.前台页面:前台只需要定义一个id为issued_sub_key_c的select标签。注意select标签须得有一个name,后台正是通过name来取得选中数据的值。取值方
法:Request.Form["issued_sub_key_c"]。
1 < select id ="issued_sub_key_c" name ="issued_sub_key_c" > 2 3 </ select >
可以看到,实现动态下拉框的方法多样,在满足实际情况的条件下,选择就看个人喜好了。
原文:http://www.cnblogs.com/SunshineAgain/p/5784182.html
内容总结
以上是互联网集市为您收集整理的ajax实现下拉框(<select>)全部内容,希望文章能够帮你解决ajax实现下拉框(<select>)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。