1

我正在尝试使用来自我的数据库调用 json 的数据创建一个图表,但它没有在图表中显示结果。到目前为止,这是我的代码:

$(document).ready(function() {
function requestData() {
$.ajax({
        url: 'data.php',
        datatype: 'json',
        success: function(data) {
        alert(data);
        chart.series[0].setData(data[0]);
        },
        cache: false
    });
}
var chart;
chart = new Highcharts.Chart({
    chart: {
            renderTo: 'container',
            type: 'line',
            events: {
               load: requestData
            }
            },
    xAxis: {
  },
  yAxis: {
     title: {
        text: 'Value'
     }
  },

series: [{
         name: 'Random data',
         data: []
            }]
});

});

这是我的 data.php 代码

$query = "SELECT tiempo,Fp1Ref 
        FROM GraficaEEG limit 10";
$data = mysqli_query($dbc, $query);
$i=0;
while($row = mysqli_fetch_array($data)) {
    $row['tiempo'] = (float) $row['tiempo'];
    $rows[$i]=array($row['tiempo'],(float)$row['Fp1Ref']); 
    $i++;
}
echo json_encode($rows);

我收到的数据是这样的:

[[0,3001],[0.005,4937.22],[0.01,4130.55],[0.015,4213.15],[0.02,4010.61],[0.025,3914.34],[0.03,3785.33],[0.035,3666.13],[0.04,3555.25],[0.045,3447.77]]

所以我认为是为图表传递数据的正确方法,所以我不太明白有什么问题,提前谢谢你。

4

2 回答 2

1

我认为问题在于,当您的requestData()函数被触发时,图表变量仍未完全构建并且不知道它具有系列属性。
要解决此问题,请参考this(表示该上下文中的图表对象 ,而不是您的requestData()函数中的图表。我在 jsfiddle 中尝试了这个http://jsfiddle.net/elcabo/p2r6g/。 还贴出下面的js代码。

$(function () {
    $(document).ready(function() {

        //Function bits
        function requestData(event) {
            var tiemposAlAzar = [[10,20],[20,50]];
            //The 'this' will refer to the chart when fired
            this.series[0].setData(tiemposAlAzar);
        };

        var chart;

        //Chart bits
        chart = new Highcharts.Chart({
            chart: {
                renderTo: 'container',
                type: 'line',
                events:{
                    load: requestData                           
                }
            },
            xAxis: {},
            yAxis: {
                title: {
                text: 'Value'
            }
        },
        series: [{
            name: 'Random data',
            data: []
        }]
      });
    });
});​ 
于 2012-07-22T11:50:31.110 回答
0

此 url 可以帮助您创建需要从数据库中提取数据的动态高图。

在 json.php 代码中,您可以放置​​ sql 查询并将静态数组替换为动态数组

http://www.kliptu.com/free-script/dynamic-highchart-example-with-jquery-php-json

该示例还展示了如何使用 json 管理多个系列。以及鼠标点处所有系列数据的工具提示。

您可以根据脚本要求修改示例。

于 2013-09-22T09:51:57.850 回答