Highcharts AJAX JSON JQuery 實現動態資料互動顯示圖表 直條圖

來源:互聯網
上載者:User

標籤:des   style   blog   http   io   ar   color   os   使用   

這是第一篇執行個體的步驟與代碼。還有整個項目的結構圖。

http://my.oschina.net/xshuai/blog/345117

        原創的博文。轉載註明出處。大家趕緊收藏吧。

        本人highcharts新手。只是做個了練手的執行個體。還望大神指點。

上個圖給大家看下效果。

點擊  查看圖表 如展示效果

  1. Highcharts簡介

Highcharts 是一個用純JavaScript編寫的一個圖表庫, 能夠很簡單便捷的在web網站或是web應用程式添加有互動性的圖表,並且免費提供給個人學習、個人網站和非商業用途使用。HighCharts支援的圖表類型有曲線圖、地區圖、柱狀圖、餅狀圖、散狀點圖和綜合圖表。

    2.Highcharts 中文API 執行個體網站

    http://www.hcharts.cn/index.php ---------------------中文官方網站

    http://www.hcharts.cn/docs/index.php----------------中文教程

    http://www.hcharts.cn/demo/index.php---------------線上示範

    http://bbs.hcharts.cn/forum.php-----------------------中文論壇

    3.下載highcharts 與使用

    http://www.hcharts.cn/resource/index.php 使用最新的就可以了。

    http://www.hcharts.cn/docs/index.php?doc=start-download 網站裡面有詳細的介紹每個檔案夾的作用。

    4.需要的檔案 jquery 自己下載就好了

<script type="text/javascript" src="${ctx }/js/jquery-1.10.2.js"></script><script type="text/javascript" src="${ctx }/js/highcharts/highcharts.js"></script>

     5.頁面index.jsp增加的代碼

html代碼<a href="javascript:void(0);" id="highchart" onclick="gotoHighchart();" class="blank_btn" >查看圖表</a>js代碼    function gotoHighchart(){        var url = ‘${ctx }/user/chartpage‘;        window.location.href=url;    }操作當點擊跳轉頁面

    6.Controller代碼

    @RequestMapping(value = "chartpage")    public String chartpage(HttpServletRequest request,            HttpServletResponse response) {        return "views/user/chartpage";    }與第5步的想對應。

    7.所需要的頁面代碼 chartpage.jsp 

<body>                <div id="container" style="width: 800px; height: 400px; margin: 0 auto"></div>       </body>

以上實現了頁面跳轉的功能。需要圖表的資料。還得繼續

    8.圖表需要的資料方法

        8.1 Controller

            接受service傳遞json的字串給頁面

    @RequestMapping(value = "/chart")    public String chart(HttpServletRequest request,             HttpServletResponse response) throws Exception {        String result = null;        try {            result = userService.chart();        } catch (Exception e) {            if(log.isErrorEnabled()){                log.error("查詢列表失敗", e);            }            result = null;        }        StringUtil.writeToWeb(result, "html", response);        return null;    }

        8.2 Service

            將list對象存入map中。並轉為json字串數組

/**     * highcharts用的     * @Title: chart     * @Description: 直接轉出JSON傳遞給前台頁面接受     * @return     */    public String chart(){        List<Map<String, Object>> list = userDao.chart();        Map<String, Object> map = new HashMap<String, Object>();        map.put("list", list);        Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();        String s = gson.toJson(map);        return s;    }

        8.3 DAO

             使用的的JDBCTemplate 傳遞sql語句查詢。返回list對象

public List<Map<String,Object>> chart(){        String sql = "select u.name,u.age from userinfo u";        return jdbcTemplate.queryForList(sql);    }

    以上基本完成了資料的擷取和轉JSON字串數組剩下就是在頁面接受JSON並填充到highcharts圖表裡面

    9.JS代碼。使用AJAX傳遞過來。並填充到highcharts裡面即可。最後一步,也是最要人命的一步。

      一定要注意json字串數組的解析。本人就是在這裡糾結了半天多。怨自己沒好好學習jquery。和強大的JSON字串。

     本人的json為  所以在遍曆的時候需要注意一下自己的list這個數組裡面的資料。可以忽略這句話。是本人的失誤。

{"list":[{"name":"一號","age":19},{"name":"二號","age":22},{"name":"test","age":19}....]}

$(function(){    var x = [];//X軸    var y = [];//Y軸    var xtext = [];//X軸TEXT    var color = ["gray","pink","red","blue","yellow","green","#fff"];    $.ajax({        type:‘get‘,        url:‘${ctx}/user/chart‘,//請求資料的地址        success:function(data){            var json = eval("("+data+")");            var s = 1;            for(var key in json.list){                json.list[key].y = json.list[key].age; //給Y軸賦值                xtext = json.list[key].name;//給X軸TEXT賦值                json.list[key].color= color[key];            }                chart.series[0].setData(json.list);//資料填充到highcharts上面        },        error:function(e){        }     });    var chart = new Highcharts.Chart({        chart:{            renderTo:‘container‘,            type:‘column‘ //顯示類型 柱形        },        title:{            text:‘年齡分布圖‘ //圖表的標題        },        xAxis:{            categories:xtext        },        yAxis:{            title:{                text:‘年齡‘ //Y軸的名稱            },        },        series:[{            name:"姓名"        }]    });});

   

個人微博 http://weibo.com/zxshuai319 

個人部落格 http://my.oschina.net/xshuai/blog 

公開QQ  783021975

個人聯盟 http://www.bengbeng.com/?sid=687095  


Highcharts AJAX JSON JQuery 實現動態資料互動顯示圖表 直條圖

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.