JSON 在 PhP 脚本中编码未解析为 JqPlot 图表的数据

JSON encode data not parsing to JqPlot Chart in PhP script

几天来我一直在搜索 stack overflow 和其他网站,但找不到足够的信息来解决我的确切问题。 我还提到了 Fabio Nelli 的 'create web charts with JqPlot',虽然这是一本很棒的书,但它并没有解决我的情况。 我不太了解 java 脚本,这可能是我的一些问题。 我正在尝试将一些数据绘制成条形图,并认为数据没有以导致失败的所需格式编码为 JSON。 我的 php 文档的 JavaScript 部分的结构也可能不正确。 (我的源 MySQL 数据由 PhP 处理并构建所需的 table - 我的理论是拉出 table 并用于与 JqPlot 图表进行比较).

我的一些相关代码 负责人:

<script type='text/javascript'> chart_data = ".json_encode($data_array).";</script>

正文(通过 html 表单过滤数据获取 php 变量作为数组后)

// creates array for json_encode
$data_array [] = array($inj_data2['count'], $damage_data2['count']);

输出图表的部分 canvas 和希望的彩色数据(使用 Bootstrap)

print ("<div class='panel-group'>
                    <div class='panel panel-default'>
                    <div class='col-sm-6 col-md-6 col-lg-6'><div class='row'><div id='chartdiv'></div>");

对于页面加载速度,Jq Plot 位于脚本底部:

?>
</body> <!-- side bar chart source info http://www.jqplot.com/examples/barTest.php# !-->
        <script type="text/javascript" src="jquerychart/1.9.1/jquery.min.js"></script>
        <script type="text/javascript" src="jquerychart/jquery.jqplot.js"></script>
        <script type="text/javascript" src="jquerychart/jqplot.barRenderer.js"></script>
        <script type="text/javascript" src="jquerychart/jqplot.pieRenderer.js"></script>
        <script type="text/javascript" src="jquerychart/jqplot.categoryAxisRenderer.js"></script>
        <script type="text/javascript" src="jquerychart/jqplot.pointLabels.js"></script>

        <link rel="stylesheet" type="text/css" href="jquerychart/jquery.jqplot.css" />

        <script>
$(document).ready(function(){

    var plot4 = $.jqplot('chartdiv', [chart_data],  

        {
            stackSeries: true,
            captureRightClick: true,
            seriesDefaults:{
                renderer:$.jqplot.BarRenderer,
                shadowAngle: 135,
                rendererOptions: {
                    barDirection: 'horizontal',
                    highlightMouseDown: true   
                },
                pointLabels: {show: true, formatString: '%'}
            },
            legend: {
                show: true,
                location: 'e',
                placement: 'within'
            },
            title:"Incidents by Department",
            axes: {
                yaxis: {
                    renderer: $.jqplot.CategoryAxisRenderer
                }
            }
        });
    });
</script>
</html> 

我用

检查了 json_encode 数组
print json_encode($data_array);

这是输出到浏览器的

[["5","1"],["1","1"],["1","0"]]

这些数据集是我所追求的,但我认为“ ”符号是导致问题的原因?

我也希望能够创建基于变量的标签(预计这也需要 JSON)并希望得到有关这方面的指示。 我的限制是我不想要任何 AJAX 调用,并希望能够在 php 脚本中传递所有数据。

当前代码 returns table 下方的空白 canvas 和 Firebug 控制台 returns:

Error: No data specified

所有反馈将不胜感激,请记住 JavaScript 对我来说不是强项。 如果手动将数据输入代码(排除任何与资源有关的基本问题),该图表也适用。 杰斯干杯

我已经解决了我遇到的问题 (99%) - 它可能不漂亮或技术上不正确.....如果可以改进请告诉我......

将变量转换为数组并删除双引号 - 我需要将每个变量声明为数组中的变量类型。 php体内

$data_array [] = array((int)$inj_data2['count'],(int)$damage_data2['count']);

这是困扰我好几天的一点…… 使用 json_encode 将 php 数组转换为 JSON 对象。 我知道我必须创建一个 javascript 对象,但有点卡住了。 我错误地遗漏了 javascript 中的 php 标签 我的解决方法是将此代码放在他文档的脚部(在 body 关闭标记之后),如下所示:

<script type='text/javascript'> var chart_data = <?php echo json_encode($data_array);?></script>

然后在 JqPlot 代码中声明此 javascript 变量,如下所示:

var plot4 = $.jqplot('chartdiv', chart_data,  

        {

希望这对以后的人有帮助我仍然需要弄清楚如何从变量中添加所需的文本标签。 干杯杰斯