ajax 的json联动
2015-11-03 15:33
531 查看
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //text/html, text/xml, text/text response.setContentType("text/html;charset=utf-8"); Dao dao = new Dao(); List<Provincename> province = dao.findAllProvince(); String json = JSONArray.fromObject(province).toString(); response.getWriter().print(json); }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); int pid = Integer.parseInt(request.getParameter("pid")); System.out.println("pid="+pid); Dao dao = new Dao(); List<Cityname> cityList = dao.findByProvince(pid); String json = JSONArray.fromObject(cityList).toString(); System.out.println(json); response.getWriter().print(json); }
<script type="text/javascript"> function createXMLHttpRequest() { try { return new XMLHttpRequest();//大多数浏览器 } catch (e) { try { return ActvieXObject("Msxml2.XMLHTTP");//IE6.0 } catch (e) { try { return ActvieXObject("Microsoft.XMLHTTP");//IE5.5及更早版本 } catch (e) { alert("哥们儿,您用的是什么浏览器啊?"); throw e; } } } } window.onload = function() { var xmlHttp = createXMLHttpRequest(); xmlHttp.open("GET", "<c:url value ='/ProvinceServlet'/>", true); xmlHttp.send(null); xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { var proArray = eval("("+ xmlHttp.responseText+")") ; for(var i = 1;i<proArray.length;i++){ var pro = proArray[i];//pro是每一个省 var optionEle = document.createElement("option"); optionEle.value = pro.pid; var textNode = document.createTextNode(pro.name); optionEle.appendChild(textNode); document.getElementById("p").appendChild(optionEle); } } }; var proSelect = document.getElementById("p"); proSelect.onchange = function() { var xmlHttp = createXMLHttpRequest(); xmlHttp.open("POST", "<c:url value = '/CityServlet'/>", true); xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlHttp.send("pid=" + this.value); xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { var citySelect = document.getElementById("c"); var optionEleList = citySelect.getElementsByTagName("option"); while (optionEleList.length > 1) { citySelect.removeChild(optionEleList[1]); } var cityArray = eval("("+xmlHttp.responseText+")"); for(var i = 0;i<cityArray.length;i++){ var city = cityArray[i]; var optionEle = document.createElement("option"); optionEle.value = city.cid; var textNode = document.createTextNode(city.name); optionEle.appendChild(textNode); citySelect.appendChild(optionEle); } } }; }; }; </script> </head> <body> <h1>省市联动</h1> <select name="province" id="p"> <option>===请选择省===</option> </select> <select name="city" id="c"> <option>===请选择市===</option> </select> </body>
相关文章推荐
- JS图片加倒影
- js中this的用法
- JS中对Map操作+el表达式使用map显示界面
- 正则表达式Regular Expression (RegExp)详解
- js实现二级菜单渐隐显示
- 正则表达式链接替换函数的技巧
- 使用CSS+JavaScript生成Tips(Bubble)
- 你不知道的JavaScript--Item26 异步的脚本加载
- 你不知道的JavaScript--Item26 异步的脚本加载
- HTML DOM 事件,可用于定义js在HTML元素中不同操作的处理程序
- 整理JavaScript创建对象的八种方法
- 关于JSON数据格式返回时间数据格式化问题
- Javascript读写文件
- json字符串解析问题---有网和无网的情况下都要给用户友好的体验问题
- js中的hasOwnProperty和isPrototypeOf方法
- JavaScript实现倒计时代码段Item1(非常实用)
- js里调用函数时,函数名带括号和不带括号的区别
- JavaScript定时调用函数 小知识
- JavaScript 比较和逻辑运算符
- JavaScript 运算符