使用HighchartsPHP绘图数据(PHP Wrapper)

时间:2014-01-15 04:16:03

标签: javascript php jquery charts highcharts

我正在尝试使用Highcharts绘制数据图表;但是,它不是渲染图形而是将图表实例输出到页面:

chart = new Highcharts.StockChart({"chart":{"renderTo":"chart"},"rangeSelector":{"selected":1},"title":{"text":"Potential Impact"},"series":{"name":"Chart Title","tooltip":{"valueDecimals":2},"data":[[1387284761,1],[1387284762,1],[1387284768,1],[1387284772,1],[1387284775,1],[1387284907,1],[1387284961,1],[1387284972,1],[1387284980,1],[1387285045,1],[1387285172,1],[1387285205,1],[1387285206,1],[1387285268,1],[1387285336,1],[1387285348,1],[1387285507,1],[1387285540,1],[1387285568,1],[1387285654,1]]}});

到目前为止,我已尝试过我能在网上遇到的所有内容,而且我很难过。对于我(没经验的)眼睛,它看起来是有效的。而且,实际上它在PHP页面中显示为输出,而不是图表或根本没有显示,这让我相信这将是一个ID10T错误。

HTML:

include_once ('../../vendors/HighchartsPHP-master/Highchart.php');

        $chart = new Highchart(Highchart::HIGHSTOCK);
        $chart->chart->renderTo = "chart";
        $chart->rangeSelector->selected = 1;
        $chart->title->text = "Potential Impact";
        $chart->series = array(
                'name' => "Chart Title",
                'tooltip' => array(
                    'valueDecimals' => 2
                ),
                'data' => format_data($q),
        );

        $chart->printScripts();
        //echo '<pre>' . print_r($chart->series->data) . '</pre>';
        echo $chart->render("chart");
     }
    ?>

    <div id="chart" style="width: 340px; height: 240px;"></div>

PHP - format_data():

function format_data($q) {
    $formatted = array();
    $result = correlate_created_at_with_impact($q); // MySQLi query

    while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) {
        $formatted[] = array(intval($row['date']), intval($row['count']));
    }
    return $formatted;
}

我已尝试在json和数组中格式化$chart->data属性,但两者都没有用。在另一个帖子中,有人提到从[]删除$chart->series[](如上所示),但这也不起作用。从理论上讲,这应该是一个简单的折线图,x轴是日期(格式为unix时间戳),y轴是相关值。

加载了jQuery(我正在使用Bootstrap,它工作正常),我手动添加了对highcharts.js,highstock.js和exports.js模块的脚本调用,以验证它们是否已加载。它们都被加载,链接解析。

理想情况下,我想使用JS实现,但我在JS方面远远不够。我想我会首先淘汰PHP实现并从那里开始......

我不确定还要检查什么。非常感谢任何帮助和/或见解!

TIA。

1 个答案:

答案 0 :(得分:0)

我删除了我的脚本标记并使用了演示文件中的代码并加载了它。它必须是脚本标记中某处的语法错误。