在for循环中绘制多个Google个饼图

Draw multiple Google pie charts in for loop

这就是我想要做的。我正在尝试放置多个 Google 饼图,我已经将代码放入,但是,我收到以下错误消息:

未捕获类型错误:无法读取未定义的 属性 'arrayToDataTable',我收到另一条错误消息:错误:arrayToDataTable 的数据不是数组。

这是我现在使用的代码:

    <?php
      foreach ($currentTeamLeaders as $currentTeamLeader) {
          $chartId = "chart_div_$currentTeamLeader[teamLeadId]";

          $chartData = array(
            array("Task","Daily Report"),
            array("Points Achieved",90),
            array("Points Left",190)
          );

      ?>

     <div id="<?php echo $chartId ?>" style="width: 900px; height: 500px;"></div>

     <script type="text/javascript">
        google.load("visualization", "1", {packages:["corechart"]});
        google.setOnLoadCallback(drawChart);
    </script>

     <script type="text/javascript">drawChart('<?php echo $chartId; ?>','<?php echo json_encode($chartData); ?>')</script>

     <?php
         }
     ?>

这里是 google 图表代码:

 function drawChart(chartId,data) {



    var dataTable = google.visualization.arrayToDataTable(data);

    var options = {
        backgroundColor: 'transparent',
        title: '' ,
        chartArea:{right:0,top:0,width:"90%",height:"100%" },
        height: 150,
        width: 200,
    };

    var chart = new google.visualization.PieChart(document.getElementById(chartId));
    chart.draw(dataTable, options);

 }

可能导致问题的原因是什么?

谢谢!

我找到了解决办法。我所做的是拆分 JS 代码并将代码放在 PHP for 循环中。