0

Ajaxコール:

var dataString = "params="+globalData.cmpThemesData;
$.ajax( {
    type : "POST",
    url : e + "/home/comparethemes",
    dataType : JSON,
    data : dataString,
    beforeSend : function() {
    },
    success : function(data) {

        $.each(data, function(key, value) {

            var series = {}; 
            series.name = value.name;
            series.data = value.value;
            basicLineptions.series.push(series);
        });

            var chart = new Highcharts.Chart(basicLineptions);  
    }
});

Ajax呼び出しからのJSON応答:

[{
    "name": "Name1",
    "data": "33100,33100,33100,27100,27100,27100,33100,27100,27100,33100,27100,0"
},
{
    "name": "Name 2",
    "data": "33100,33100,33100,27100,27100,27100,33100,27100,27100,33100,27100,0"
},
{
    "name": "Name 3",
    "data": "33100,27100,33100,33100,33100,27100,27100,22200,27100,33100,74000,0"
},
{
    "name": "Name 4",
    "data": "18100,22200,33100,22200,14800,12100,18100,22200,12100,9900,14800,0"
}]

基本的なライングラフオプション:

 var basicLineptions = { 
 chart: {
 renderTo: 'content',
type: 'line',
marginRight: 130,
marginBottom: 25
},
title: {
text: 'Compare Theme Data',
x: -20 //center
},
subtitle: {
text: '',
x: -20
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun','Jul', 'Aug', 'Sep', 'Oct',         'Nov', 'Dec']
},
yAxis: {
title: {
    text: 'Search Volumes'
},
plotLines: [{
    value: 0,
    width: 1,
    color: '#808080'
}]
},
tooltip: {
valueSuffix: ''
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'top',
x: -10,
y: 100,
borderWidth: 0
},
series: [],
exporting: {
   enabled: false
}
};

このJSON応答をHighchartsBasicLineグラフに渡して、Jqueryのデータを比較するにはどうすればよいですか?

基本的な線グラフデータ比較グラフ

これは私が合格しようとした方法です:

$.each(data, function(key, value){
   var series = {};
   series.name = data.name;
   series.data = data.value;
   basicLineptions.series.push(series);
});
var chart = new Highcharts.Chart(basicLineptions);

ありがとう ...

4

2 に答える 2

1

これを試してみてください:

$.each(data, function(key, value) {
   var series = {};     //-^---^---------this should be used to refer the data.
       series.name = value.name; //<-----data should be referenced by value here
       series.data = parseInt(value.value); //<----here data is the key in the json.
       basicLineptions.series.push(series);
});
var chart = new Highcharts.Chart(basicLineptions);

ここでは、関数のコールバックで提供されている値でデータを参照し、グラフを初期化する必要があります。


アップデート:

これで更新する必要があります:

var dataString = {"params":globalData.cmpThemesData}; //<---this one send obj
$.ajax({
type : "POST",
url : e + "/home/comparethemes",
dataType : "JSON", //<-------------this one "" should be in quotes
data : dataString,
beforeSend : function() {},
success : function(data) {
    $.each(data, function(key, value) {
        var series = {}; 
        series.name = value.name;
        series.data = parseInt(value.value);
        basicLineptions.series.push(series);
    });
    var chart = new Highcharts.Chart(basicLineptions);  
}
});
于 2013-03-26T06:28:35.670 に答える
0

問題はあなたのデータ(value.value)にあると思います。これは文字列のように見え、配列である必要があります。試す:

series.data=value.value.split(",");
于 2013-03-26T08:46:43.460 に答える