使用JSON数组的Morris JS折线图

时间:2018-04-03 14:26:09

标签: javascript php json morris.js

我能够在我的original question上获得一些帮助,以便从mysql获得连接的JSON输出。所以现在我有一个JSON数组,我试图在一个位于PHP页面的Morris JS折线图中显示。

目前这是print_r($rows)返回的内容:

Array ( [0] => Array ( [json_data_records] => {"dateRecorded": "2018-04-02 21:15:56","sensor2":64.96,"sensor1":60.91} ) [1] => Array ( [json_data_records] => {"dateRecorded": "2018-04-02 21:25:58","sensor2":64.51,"sensor1":60.91} ) [2] => Array ( [json_data_records] => {"dateRecorded": "2018-04-02 21:36:00","sensor2":64.06,"sensor1":60.91} ) [3] => Array ( [json_data_records] => {"dateRecorded": "2018-04-02 21:46:02","sensor2":63.61,"sensor1":60.35} ) [4] => Array ( [json_data_records] => {"dateRecorded": "2018-04-02 21:56:05","sensor2":63.27,"sensor1":60.46} ) ) 1

但我相信该图表正在寻找更像是的结构:

[
    {"dateRecorded": "2018-04-02 00:20:00","sensor2":69.91,"sensor1":68.11},
    {"dateRecorded": "2018-04-02 00:30:08","sensor2":69.69,"sensor1":68.00}
]



我试图将图表配置中的数据输入设置为data: <?php echo $rows;?>但是我收到错误: PHP Notice: Array to string conversion


如果我复制mysql输出的每一行并将其放入图表配置的数据设置中,所有内容都打印出来,因为我知道我有正确的结构和配置集,只需要一些帮助从数组中获取它格式化。我会使用某种for循环迭代数组并打印出每一行吗?

1 个答案:

答案 0 :(得分:0)

我认为混合使用javascript和PHP代码并不是很好。我强烈建议使用jQuery $ .ajax从服务器加载JSON-中的数组。因此,您不会遇到这种转换问题,并且无需重新加载整个页面即可重新加载图表内容。

否则,是的,你应该用PHP循环并打印出每一行。