第一步

设置点击事件,使用Ajax请求服务器

//入口
$(function(){
//点击事件$("#province").click(function(){var provinceData=[];$.ajax({url:"<%=request.getContextPath()%>/WorkProvinceServlet",type:"get",dataType:"json",success:function(data){
//遍历List,将数据转换为一个对象数组$(data).each(function(i,v){var temp={name:v.name,value:v.size};//省份,统计数量provinceData.push(temp);});//将处理过后的JSON传入getEchartsMap()方法中,设置地图数据getEchartsMap(provinceData);}});});});

第二步

Servlet获取数据库中的数据

Servlet方法

@WebServlet("/WorkProvinceServlet")
public class WorkProvinceServlet extends HttpServlet {private static final long serialVersionUID = 1L;@Overrideprotected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");System.out.println("WorkProvinceServlet");response.setContentType("text/plain");WorkProvinceService service=WorkProvinceService.getInstance();//统计学生在全国各省工作的信息List<ProvinceTest> l=service.getProvinces();//将List转为JSONresponse.getWriter().print(JSON.toJSON(l));}}

Service方法

public class WorkProvinceService {private static WorkProvinceService service=null;private WorkProvinceService() {}public static WorkProvinceService getInstance() {if(service==null) {service=new WorkProvinceService();}return service;}public List<ProvinceTest> getProvinces() {return CommonDao.getInstance().selectProvincesByGrounp();}
}

Dao方法

public List<ProvinceTest> selectProvincesByGrounp() {List<ProvinceTest> L=new ArrayList<ProvinceTest>();Connection con = null;PreparedStatement stmt = null;ResultSet rs = null;try {// 获取连接con = DBUtils2.getConnection();// 定义SQL语句String sql = "select p.provinceid,p.province,count(*) count from RegistrationCardInfo r,province p\r\n" + "       where r.province=p.provinceid\r\n" + "       group by p.provinceid,p.province";// 获取PreparedStatement对象stmt = con.prepareStatement(sql);rs = stmt.executeQuery();while (rs.next()) {ProvinceTest p = new ProvinceTest();p.setName(rs.getString("province"));p.setSize(rs.getInt("count"));L.add(p);}} catch (Exception e) {e.printStackTrace();}return L;}

ProvineTest类

public class ProvinceTest {private String name;//省份名private Integer size;//数量public ProvinceTest() {super();// TODO Auto-generated constructor stub}public ProvinceTest(String name, Integer size) {super();this.name = name;this.size = size;}
}   

第三步

处理返回的数据

function getEchartsMap(provinceData) {           //工作省份地图var myChart = echarts.init(document.getElementById('map'));var app = {};option = null;var data = [{ name: '北京', value: 1000 },{ name: '郑州', value: 38 },{ name: '石家庄', value: 43 },{ name: '重庆', value: 54 },{ name: '西安', value: 54 },{ name: '上海', value: 54 }];var geoCoordMap = {'北京': [116.46, 39.92],'郑州': [113.65, 34.76],'石家庄': [114.48, 38.03],'重庆': [106.54, 29.59],'西安': [108.95, 34.27],'上海': [121.48, 31.22]};function convertData(data) {var res = [];for(var i = 0; i < data.length; i++) {var geoCoord = geoCoordMap[data[i].name];if(geoCoord) {res.push({name: data[i].name,value: geoCoord.concat(data[i].value)});}}return res;};//测试数据//alert(provinceData);option = {tooltip: {},visualMap: {show: false,inRange: {color: '#fff'}},geo: {map: 'china',roam: true,label: {normal: {show: true,textStyle: {color: '#929292',fontSize: 8}}},itemStyle: {normal: {borderColor: 'rgba(0, 0, 0, 0.2)'},emphasis: {areaColor: null,shadowOffsetX: 0,shadowOffsetY: 0,shadowBlur: 20,borderWidth: 0,shadowColor: 'rgba(0, 0, 0, 0.5)'}}},series: [{type: 'scatter',coordinateSystem: 'geo',data: convertData(data),symbolSize: 15,symbol: 'image://images/pin_2.svg',symbolRotate: 0,itemStyle: {normal: {color: 'red'}}},{name: '就业地区',type: 'map',geoIndex: 0,data: provinceData//处理传入的数据!!!}]/** 之前的静态数据{ name: '北京', value: 1000 },{ name: '天津', value: 58 },{ name: '上海', value: 78 },{ name: '重庆', value: 53 },{ name: '河北', value: 27 },{ name: '河南', value: 58 },{ name: '云南', value: 58 },{ name: '辽宁', value: 58 },{ name: '黑龙江', value: 58 },{ name: '湖南', value: 58 },{ name: '安徽', value: 58 },{ name: '山东', value: 58 },{ name: '新疆', value: 58 },{ name: '江苏', value: 58 },{ name: '浙江', value: 58 },{ name: '江西', value: 58 },{ name: '湖北', value: 58 },{ name: '广西', value: 58 },{ name: '甘肃', value: 58 },{ name: '山西', value: 58 },{ name: '内蒙古', value: 58 },{ name: '陕西', value: 58 },{ name: '吉林', value: 58 },{ name: '福建', value: 58 },{ name: '贵州', value: 58 },{ name: '广东', value: 58 },{ name: '青海', value: 58 },{ name: '西藏', value: 58 },{ name: '四川', value: 58 },{ name: '宁夏', value: 58 },{ name: '海南', value: 58 },{ name: '台湾', value: 58 },{ name: '香港', value: 58 },{ name: '澳门', value: 1231231 }*/};if(option && typeof option === "object") {myChart.setOption(option, true);}
}

如何使用Ajax更新echarts工作省份信息相关推荐

  1. MVC 音乐商店 第 8 部分: 购物车与 Ajax 更新

    MVC 音乐商店是介绍,并分步说明了如何使用 ASP.NET MVC 和 Visual Studio 为 web 开发教程应用程序. MVC 音乐商店是一个轻量级的示例存储实现它卖音乐专辑在线,并实现 ...

  2. ASP.NET MVC 音乐商店 - 8. 使用 Ajax 更新的购物车

    ASP.NET MVC 音乐商店 - 8. 使用 Ajax 更新的购物车 在这个项目中,我们将允许用户在没有注册登录的情况下将专辑加入购物车,但是,在完成结账的时候必须完成注册工作.购物和结账将会被分 ...

  3. Web前端-Ajax-02-实例:根据省份id查询省份信息

    Web前端-Ajax-02-实例:根据省份id查询省份信息 1.需求 用户在文本框输入省份的编号id,在其他文本框中显示其对应的省份名称.省份简称以及省会. 2.准备工作 2.1创建数据库与数据表 2 ...

  4. 笔记-项目管理基础知识-项目信息(工作绩效信息、绩效数据、绩效报告)

    项目信息 ▲▲▲▲▲ 工作绩效数据 在执行项目工作的过程中,从每个正在执行的活动中收集到的原始观察结果和测量值.如:工作完成百分比.质量和技术绩效测量值.进度活动的开始和结束日期.变更请求的数量.缺陷 ...

  5. ajax调用fastreport,使用Ajax更新ASP.Net MVC项目中的报表对象

    Ajax技术显著加快了Web应用程序的速度.另外,视觉效果方面也有提升.大家都同意,每次点击按钮时整个页面都会被刷新这一点不太友好.如果你的网速不是很快,那么这个过程会很烦人,因为所有的元素都会先消失 ...

  6. 辨析 工作绩效数据、工作绩效信息、工作绩效报告

    工作绩效数据.工作绩效信息.工作绩效报告辨析 工作绩效数据 在执行项目的工作过程中,从每个正在执行的活动中收集到的原始观察结果和测量值. 例如:工作完成百分比,质量和技术绩效测量值,进度活动的开始和结 ...

  7. 在Asp.net MVC使用thickbox实现调用页面的Ajax更新

    在MVC模式中,通常都是Controller处理请求并生成数据,选择一个合适的View来显示结果给用户.虽然Asp.net MVC已经有非常丰富的ActionResult来满足不同情况下的需求,但是有 ...

  8. svn更新路径,解决办法详细步骤,eclipse里面的更新方法,svn废弃位置,Windows环境,svn服务器地址换了,如何更新本地工作目录

    svn更新路径,解决办法详细步骤,eclipse里面的更新方法,svn废弃位置,Windows环境,svn服务器地址换了,如何更新本地工作目录 参考文章: (1)svn更新路径,解决办法详细步骤,ec ...

  9. ajax表格内容加按钮,单击按钮时,如何触发jquery数据表fnServerData通过AJAX更新表?...

    我正在将datatables插件与服务器端数据一起使用,并使用AJAX更新表. 我的dataTables设置如下所示: tblOrders = parameters.table.dataTable( ...

最新文章

  1. 浅析redis与zookeeper构建分布式锁的异同
  2. 什么时候是找工作的最佳时期? | 原力计划
  3. Gnumeric,专业处理数字软件
  4. Java为何能一次编写,到处运行
  5. thinkphp5 与 endroid 二维码生成
  6. Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
  7. 信锐nac6100管理口怎么进去_建盏生锈了怎么办?
  8. 网络基础知识(黑马教程笔记)-4-http请求与响应的处理
  9. python 高斯烟羽模型_高斯扩散模型-高斯烟羽大气污染扩散模型
  10. pdf edit注册码
  11. 为什么越来越多的人从开发转测试?
  12. android ViewBinding
  13. Vue上传图片裁剪预览插件vue-img-cutter的使用
  14. POJ-3368 Frequent values
  15. 开启TX2、Xavier最大性能 Opening the Max performance of TX2、Xavier
  16. 在天翼网关2.0上如何使用自己的路由器
  17. python excel文件换题头
  18. 白鹭(egret)引擎安装及使用
  19. 什么是TLB ?(转载)
  20. 线性代数(13)——向量空间、维度和四大子空间(下)

热门文章

  1. 支付宝小程序财富号基金相关页面之间相关跳转
  2. xml文件解析(使用解析器)
  3. APP游戏开发十诫!第一个雏型就要搞定的事
  4. '/0'和/0的区别
  5. excel 链接sql server数据库,并使用sql语句导出自己想要的数据
  6. 基于mochiweb的chatty聊天室1
  7. 搭建asp会议签到系统 第四章 会议统计
  8. Actor编程模型——简介
  9. 内向自闭的我,开启了直播首秀
  10. 物品丢失成为人们头痛的问题,苹果Find My帮助我们更好找到物品