异步获取json出现的小问题
来源:互联网 发布:跑步后的拉伸运动知乎 编辑:程序博客网 时间:2024/06/15 13:25
这只是个简单版的省市联动的页面:
<%@ page language="java" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>省份-城市-区域三级联动</title> <script type="text/javascript" src="js/ajax.js"></script> </head> <body> <select id="provinceID" style="width:111px"> <option>选择省份</option> <option>湖北</option> <option>湖南</option> <option>广东</option> </select> <select id="cityID" style="width:111px"> <option>选择城市</option> </select> <select id="areaID" style="width:111px"> <option>选择区域</option> </select> <!-- 省份->城市 --> <script type="text/javascript"> document.getElementById("provinceID").onchange = function(){ //清空城市下拉框 var cityElement = document.getElementById("cityID"); cityElement.options.length = 1; //清空区域下拉框 var areaElement = document.getElementById("areaID"); areaElement.options.length = 1; var province = this[this.selectedIndex].innerHTML; if("选择省份" != province){ //NO1) var ajax = createAJAX(); //NO2) var method = "POST"; var url = "${pageContext.request.contextPath}/findCityByProvinceRequest?time="+new Date().getTime(); ajax.open(method,url); //NO3) ajax.setRequestHeader("content-type","application/x-www-form-urlencoded") //NO4) var content = "bean.province=" + province; ajax.send(content); //-------------------------------------------等待 //NO5 ajax.onreadystatechange = function(){ if(ajax.readyState == 4){ if(ajax.status == 200){ //NO6)返回JAVA格式的JSON文本 var jsonJAVA = ajax.responseText; //jsonJAVA所代表的是java格式的json文本,是不能直接被js执行的 //解决方案:将java格式的json文本,转成js格式的json文本 var jsonJS = eval("("+jsonJAVA+")"); var array = jsonJS.cityList; var size = array.length; for(var i=0;i<size;i++){ var city = array[i]; var option = document.createElement("option"); option.innerHTML = city; cityElement.appendChild(option); } } } } } } </script> <!-- 城市->区域 --> <script type="text/javascript"> document.getElementById("cityID").onchange = function(){ var areaElement = document.getElementById("areaID"); areaElement.options.length = 1; var city = this[this.selectedIndex].innerHTML; if("选择城市" != city){ //NO1) var ajax = createAJAX(); //NO2) var method = "POST"; var url = "${pageContext.request.contextPath}/findAreaByCityRequest?time="+new Date().getTime(); ajax.open(method,url); //NO3) ajax.setRequestHeader("content-type","application/x-www-form-urlencoded") //NO4) var content = "bean.city=" + city; ajax.send(content); //------------------------------------------等待 //NO5) ajax.onreadystatechange = function(){ if(ajax.readyState == 4){ if(ajax.status == 200){ //NO6) var jsonJAVA = ajax.responseText; var jsonJS = eval("("+jsonJAVA+")"); var array = jsonJS.areaList; var size = array.length; for(var i=0;i<size;i++){ var area = array[i]; var option = document.createElement("option"); option.innerHTML = area; areaElement.appendChild(option); } } } } } } </script> </body></html>
这里注意:使用js的eval()函数便可有完美的修改,讲java的json转变成js可识别的json,这里一定要注意写法。固定写法要加上一个“()”
var jsonJS = eval("("+jsonJAVA+")");
阅读全文
0 0
- 异步获取json出现的小问题
- 基于jquery的ajax 异步获取json
- 实现Parcelable接口的实体类,用来解析Json出现的小问题
- android-async-http异步出现的问题
- Oracle出现的小问题
- 前端出现的小问题
- 前端获取后台json过程由于转义字符出现的问题
- ajax异步加载的小问题
- 异步获取数据格式化成json
- JSON异步获取网络数据
- js异步获取数据的问题
- 常见对象_Scanner获取数据出现的小问题及解决方案
- java学习日记_57:Scanner获取数据出现的小问题及解决方案
- 使用json库 编译出现的问题
- Java JSON字符串转JSON对象出现的问题
- golang 转换json字符串为json对象的小问题
- struts1 采用json格式发送异步请求,并且获取action处理后的json数据
- struts1 采用json格式发送异步请求,并且获取action处理后的json数据
- DelayedQueue
- springdata && mybatis中IN关键字的传值
- JMX远程图形化监控、管理JVM
- 数据挖掘算法之离散化和二元化
- Eclipse 使用相关知识
- 异步获取json出现的小问题
- vector 容器
- sql语句执行顺序
- Hadoop课程遇到的问题集锦
- 2017计蒜之道 第四场 商汤科技的行人检测(简单)
- Redis配置文件之————redis.conf配置及说明
- Tomcat优化之内存优化
- spyder crashed during last session
- RN-API