2013-02-14 134 views
1

我正在尝试创建向下钻取Highcharts列图。只要数据是硬编码的,我就可以使用这些示例并使其工作。我也可以从我的MySQL数据库中获取数据的例子。Highcharts:列向下钻取:JSON

我需要知道的是如何在系列中调用。

实施例:

/// This needs to be data from the MySQL (a total sum) of X-data 
name = 'Browser brands', 
data = [{ 
y: 55.11, 
color: colors[0], 
////// this drill down needs the a breakdown of the data 
drilldown: { 
name: 'MSIE versions', 
categories: ['MSIE 6.0', 'MSIE 7.0', 'MSIE 8.0', 'MSIE 9.0'], 
data: [10.85, 7.35, 33.06, 2.81], 
color: colors[0] 
} 
///////// I need another drill that will show a breakdown of the data again 
} 
/// This needs to be data from the MySQL (a total sum) of y-data 
name = 'Browser brands', 
data = [{ 
y: 55.11, 
color: colors[0], 
////// this drill down needs the a breakdown of the data 
drilldown: { 
name: 'MSIE versions', 
categories: ['MSIE 6.0', 'MSIE 7.0', 'MSIE 8.0', 'MSIE 9.0'], 
data: [10.85, 7.35, 33.06, 2.81], 
color: colors[0] 
} 
///////// I need another drill that will show a breakdown of the data again 
} 

所以理论上如何可以有一个图表的一个第一系列示出了总的X,Y,Z 被点击时或者,它显示了一个突破该数据的下降,当任何一个下一列被点击时,再次显示数据的进一步分解。

我知道有多个MySQL查询,多个数组。我只是不明白如何调用它们所需

+0

您是否需要多次下钻?看例子:http://jsfiddle.net/NULTY/390/(第一列) – 2013-02-14 12:09:32

+0

谢谢你的回复。这开始有所帮助。除了我需要的每个数据点都是从MySQL中提取的数据。我不确定如何发出呼叫来获取信息。我知道如果它只是一个包含所有数据的图表,我会这样做... $。getJSON(“data.php”,function(json){ – Mike 2013-02-14 13:35:10

回答

1

时看看这一部分:

click: function() { 
       var drilldown = this.drilldown; 
       if (drilldown) { // drill down 

        this.series.chart.setTitle({ 
         text: drilldown.name 
        }); 

        setChart(drilldown.name, drilldown.categories, drilldown.data, drilldown.color, drilldown.level); 
       } else { // restore 
        setChart(name, categories, data, null, level); 
       } 
       } 

只需使用$ .getJSON()那里,和内部的$ .getJSON()使用setChart ()方法与来自AJAX的数据。像这样(未测试):

click: function() { 
       var drilldown = this.drilldown; 
       if (drilldown) { // drill down 
        var chart = this.series.chart; 
        $.getJSON(...., function(data){ 
         chart.setTitle({ 
          text: data.name 
         }); 
         setChart(data.name, data.categories, data.data, data.color, data.level); 
        }); 
       } else { // restore 
        setChart(name, categories, data, null, level); 
       } 
       }