Google图表似乎不起作用

时间:2014-06-24 17:59:47

标签: php mysql google-visualization

我正在制作一个需要使用谷歌图表的应用程序。 我有这个代码。如果仅使用变量 a b ,一切正常。只要我添加另一个名为 c 的变量,它就会显示如下输出。

enter image description here

为什么以这种方式显示? a,b,c的值分别为8,10,50。

这是代码: -

<?php
include 'dbconnector.php';
include 'class/class.user.php';
$user = new user();
try
{
  $s = $conn->query("SELECT * from messagequeue where indexid=1");
  $s->setFetchMode(PDO::FETCH_OBJ);
  $row = $s->fetch();
  $s->closeCursor();
  $total = $user->getMaxEmailsFromGridId($row->gridid);
}
catch(PDOException $e)
{
  echo $e->getMessage();
}
?>

<html>
  <head>

  </head>
  <body>
    <div id="donutchart" style="width: 900px; height: 500px;"></div>
    <input type="hidden" name="read" id="read" value="<?php echo $row->read; ?>">
    <input type="hidden" name="unsubscribed" id="unsubscribed" value="<?php echo $row->unsubscribed; ?>">
    <input type="hidden" name="total" id="total" value="<?php echo $total; ?>">
  </body>
</html>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
    var a=document.getElementById('read').value;
    var b=document.getElementById('unsubscribed').value;
    var c=document.getElementById('total').value;
    alert(a);
    alert(b);
    alert(c);
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['Task', 'Hours per Day'],
          ['A',     a],
          ['B',      b],
          ['C',  c]
        ]);

        var options = {
          title: 'Mail Activity',
          pieHole: 0.4,
        };

        var chart = new google.visualization.PieChart(document.getElementById('donutchart'));
        chart.draw(data, options);
      }
    </script>

欢迎提出任何建议。

1 个答案:

答案 0 :(得分:1)

您需要将abc解析为数字:

var a = parseFloat(document.getElementById('read').value);
var b = parseFloat(document.getElementById('unsubscribed').value);
var c = parseFloat(document.getElementById('total').value);

如果您的值已知为整数,也可以使用parseInt代替parseFloat