使用PHP在Morris图表中显示数据

时间:2016-07-15 22:31:59

标签: javascript php morris.js

我正在尝试使用php在以下代码中的morris条形图中显示数据:

Morris.Bar({
    element: 'bar-example',
    data: [
        { <?php echo $graphData[0]; ?> },
        { <?php echo $graphData[1]; ?> },
        { <?php echo $graphData[2]; ?> },
        { <?php echo $graphData[3]; ?> },
        { <?php echo $graphData[4]; ?> },
        { <?php echo $graphData[5]; ?> },
        { <?php echo $graphData[6]; ?> }
    ],
    xkey: 'y',
    stacked: true,
    ykeys: ['Spotify ','Apple '],
    labels: ['Spotify ','Apple ']
    });

问题在于,当我将回显的字符串直接复制并粘贴到数据字段中时,例如 - &gt; y:&#39; 2月&#39;,&#39; Spotify&#39;:9.99,图表显示数据。但是,当我允许php将此字符串回显到上述代码中的数据字段时,图形不会显示数据。不知道为什么。感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你可以在php中创建数据数组,然后将数组转换为json
并在javascript中使用json:

    $data = [
    [ 'year'=> '2008', 'value'=> 20 ],
    [ 'year'=> '2009', 'value'=> 10 ],
    [ 'year'=> '2010', 'value'=> 5 ],
    [ 'year'=> '2011', 'value'=> 5 ], 
    [ 'year'=> '2012', 'value'=> 20 ]
  ];

$jsonForUseInJavascript = json_encode($data);

然后在javascript中回显json并将其解析为数组:

Morris.Bar({
    element: 'bar-example',
    data: JSON.parse('<?php echo $jsonForUseInJavascript ?>'),
xkey: 'y',
    stacked: true,
    ykeys: ['Spotify ','Apple '],
    labels: ['Spotify ','Apple ']
});