2012-07-13 110 views
2

我希望有人可以帮助我在这里,我一直在寻找highcharts作为从我的sql数据库中绘制我的动态数据的方式....我来了到目前为止是在下面,这很奇怪,看起来是正确的,数据是正确的,但是,我无法让我的图表呈现,现在我已经尝试通过Chrome浏览器和IE查看图表,但没有结果,可以任何人都可以看到我可能出错的地方,或者出现错误的地方......我的数据传入JS数组,所以渲染结束时出现问题......任何帮助都将非常感谢。我关闭了我的html标签,但由于某种原因,它不显示在这篇文章中...如果有人有任何建议,我会很高兴听到他们!问题渲染Highcharts - 通过PHP/MySQL填充

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<script src='highcharts.js' type='text/javascript'> </script>  
    <script src='exporting.js' type='text/javascript'> </script>  
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"type="text/javascript"></script>  

    </head> 

<body> 

    <?php 
    include "connect_db.php"; 

    $SQL1 =  "SELECT review.reviewForum AS reviewForum, 
       COUNT(CASE WHEN mom.result = 'Approved' THEN 'yes' ELSE NULL END) AS Approved, 
       COUNT(CASE WHEN mom.result = 'NOT Approved' THEN 'yes' ELSE NULL END) AS Not_Approved, 
       COUNT(CASE WHEN mom.result = 'Cancelled' THEN 'yes' ELSE NULL END) AS Cancelled 
       FROM review INNER JOIN mom ON mom.reviewId = review.reviewId GROUP BY review.reviewForum"; 

    $result1 = mysql_query($SQL1); 
    $data1 = array(); 
    while ($row = mysql_fetch_array($result1)) { 
     $data1[] = $row['reviewForum']; 
    } 

    $result2 = mysql_query($SQL1); 
    $data2 = array(); 
    while ($row = mysql_fetch_array($result2)) { 
     $data2[] = $row['Approved']; 
    } 

    $result3 = mysql_query($SQL1); 
    $data3 = array(); 
    while ($row = mysql_fetch_array($result3)) { 
     $data3[] = $row['Not_Approved']; 
    } 

    $result4= mysql_query($SQL1); 
    $data4 = array(); 
    while ($row = mysql_fetch_array($result4)) { 
     $data4[] = $row['Cancelled']; 
    } 
    ?> 

    <script type="text/javascript"> 
    $(document).ready(function() { 
     var chart = new Highcharts.Chart({ 
       chart: { 
       renderTo: 'container', 
       type: 'column' 
       }, 

      title: { 
         text: 'TC REVIEW RESULT STATS' 
        }, 

      xAxis: { 
         categories: [<?php echo join($data1, ',') ?>], 
        }, 

      yAxis: { 
         min:0 
        }, 

      legend: { 
         layout: 'vertical', 
         backgroundColor: '#FFFFFF', 
         align: 'left', 
         verticalAlign: 'top', 
         x: 50, 
         y: 35, 
         floating: true, 
         shadow: true 
        }, 

      plotOptions: { 
          column: { 
             pointPadding: 0.2, 
             borderWidth: 0 
            } 
         }, 

      series: [ { 
          name: 'Approved', 
          data: [<?php echo join($data2, ',') ?>], 
          pointStart: 0 
          //pointInterval 
         }, 

         { 

          name: 'Unapproved', 
          data: [<?php echo join($data3, ',') ?>], 
          pointStart: 0 
          //pointInterval 
         }, 

         { 
          name: 'Cancelled', 
          data: [<?php echo join($data4, ',') ?>], 
          pointStart: 0 
          //pointInterval 
         }, 
        ] 
     }); 
}); 
    </script> 

    <div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div> 

</body> 

+0

您的html标记可能会丢失,因为您可能需要在该行之后添加一个额外的输入(以使其成为代码的一部分)。 – EricG 2012-07-13 12:24:50

回答

0

取出xAxis下类别语句后的逗号。

 xAxis:  { 
    categories: [<?php echo join($data1, ',') ?>], 
}, 

应该

xAxis:  { 
    categories: [<?php echo join($data1, ',') ?>] 
}, 
+0

逗号不是这里的问题是工作[jsFiddle](http://jsfiddle.net/minagabriel/m2uXc/)用逗号后面的对象数组 – 2012-07-13 13:33:37

+0

嗨...我也是做到了这一点,但没有区别..感谢你虽然 – 2012-07-13 13:33:50

+0

未开发的工具的错误消息是否改变? – 2012-07-13 13:37:23

1

我建议你开始尝试绘制一个没有生成的代码。如果这不起作用,你可能想在jsfiddle上分享,我们可以看看:-)。如果确实有效,您应该将其与生成的代码进行比较。

{ 
     name: 'Cancelled', 
     data: [<?php echo join($data4, ',') ?>], 
     pointStart: 0 
     //pointInterval 
    }, // This comma is a syntax error 
] 

你看到这个逗号吗?你不会在'}'之前加逗号,因为你在多个地方都有。

+0

说实话EricG我希望我可以让人们用新鲜的眼睛看看我的代码,因为我在过去两天一直在广场上看着眼睛......我只是想知道我的布局是否正常。 ..在PHP文件中有js可以吗?等 – 2012-07-13 11:39:06

+0

取消后,数据或右大括号? – 2012-07-13 12:27:07

+0

最后一个逗号。 – EricG 2012-07-13 12:32:36

0

我觉得THRE真正的原因是在这里:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"type="text/javascript"></script>  
<script src='highcharts.js' type='text/javascript'> </script>  
<script src='exporting.js' type='text/javascript'> </script>  

首先负荷的jQuery,然后Highcharts。