如何在HighCharts中返回json数据?

时间:2014-10-17 04:02:38

标签: javascript php json highcharts

美好的一天。帮助在JS Highcharts中以JSON格式发送数据。选择了两个字段:温度和湿度。它们应该基于时间表。在一个领域,一切都工作,因为只有两个全部死亡。

PHP:

<?php
/* SQL */
    /* Connect */
        try
        {
            $connection = new PDO("mysql:host=localhost;dbname=my","root","");
        }
        catch (PDOException $e)
        {
            echo 'Connection error: ' . $e->getMessage();
        }
    /* /Connect */
    /* Query */
        $query = $connection->prepare("SELECT temperature, humidity FROM weather WHERE date >= CURDATE()");
        $query->execute();
        $result = $query->fetchAll(PDO::FETCH_ASSOC);

        echo json_encode($result, JSON_NUMERIC_CHECK);

    /* /Query */
/* /SQL */
?>

JS:

$(function(){
var options = {
    chart: {
        renderTo: 'mychart',
        type: 'spline'
    },
    title: {
        text: 'Temperature'
    },
    xAxis: {
        categories: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
    },
    yAxis: {
        title: {
            text: 'Values'
        }
    },
    series: [{}]
};

$.getJSON('../ajax/get_weather_day.php', function(data){
    options.series[0].name = "Temperature";
    options.series[0].data = data;
    options.series[1].name = "Humidity";
    options.series[1].data = data;
    var chart = new Highcharts.Chart(options);
});
});

1 个答案:

答案 0 :(得分:2)

您正在将mysql表的两个字段的结果分配给两个系列。

options.series[0].data = data;
options.series[1].data = data;

您应该拆分数据并将正确的值分配给正确的系列(或者您可以进行两次ajax调用以单独获取 - 在您的情况下检查哪些更便宜)。

顺便说一下,数据现在保存了mysql结果行(值对),但是highcharts将这些值视为数字序列。

见这里:

http://api.highcharts.com/highcharts#series