0

嗨,这是我的 html 代码

 <select id="difques">
            <option value="firstfivemonth">firstfivemonth</option>
            <option value="nextfivemonth">nextfivemonth</option>
        </select>

这是我在 jquery 中使用 ajax 调用服务器的代码............

 $('#difques').change(function(){
                     $.ajax({
                                type: "GET",
                                url: "ManyQuestionGraph",
                                data: "graphfor="+$('#difques :selected').val()+"&value="+${value},
                                success: function(data){
                                    var obj=jQuery.parseJSON(data);
                                    options.series[0].color='red';
                                    options.xAxis.categories=obj.value;
                                    options.series[0].data=obj.month;
                                    chart = new Highcharts.Chart(options);
                                }  
                            });
                        });

我的highchart代码是

               var chart;
                    $(document).ready(function() {
                       var options  = {
                            chart: {
                                renderTo: 'graphreport',
                                type: 'column'
                            },
                            title: {
                                text: 'Rating'
                            },
                            xAxis: {
                                categories: ['jan','feb','mar','apr','may']
                            },
                            yAxis: {
                                min: 0,
                                max: 5,
                                title: {
                                    text: ''
                                }
                            },
                            tooltip: {
                                formatter: function() {
                                    return ''+
                                        this.series.name +': '+ this.y +'';
                                }
                            },
                            credits: {
                                enabled: false
                            },
                            series: [{
                                name: 'Rating',
                                data: [1,2,3,4,5],
                                color: '#77c4d3'
                            }]
                        }
                        chart = new Highcharts.Chart(options);

我的servlet代码是

 protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
                    JSONObject jsonobject = new JSONObject();
                    jsonobject.put("value",[5,4,3,2,1]);
                    jsonobject.put("month",['jun','jul','aug','sep','oct']);
                    response.setContentType("text/plain");
                    response.setCharacterEncoding("UTF-8");
                    response.getWriter().write(jsonobject.toString()); 
}

我的网页看起来像这样...... 在此处输入图像描述

但是当我在选择组合框中选择下五个月时,它使用 ajax 调用服务器,我可以在 ajax 成功期间从服务器获取 json 数据但是当我将数据传递给 highchart 时,它看起来像这样...... .

在此处输入图像描述

是我做错了还是我在编码中犯了一些错误......

帮我...........

4

2 回答 2

0

这一点在我看来是错误的:

options.xAxis.categories=obj.value;
options.series[0].data=obj.month;

这不是走错路了吗?月份是类别,值是数据?尝试:

options.xAxis.categories=obj.month;
options.series[0].data=obj.rate;
于 2013-03-08T14:26:21.797 回答
0

您的 JSON 对于 Highcharts 是错误的,请从以下位置更改:

{
     "rate":",3.5,0,0,0",
     "month":"'jun','jul','aug','sep','oct'"
}

对于这样的事情:

{
     "rate": [3.5,0,0,0],
     "month": ['jun','jul','aug','sep','oct']
}
于 2013-03-09T12:33:03.777 回答