2012-07-15 94 views
-2

我使用OpenCart构建了一个遵循MVC结构设计的电子商务平台。现在我正试图在仪表板中显示饼图,为此我使用的是Google Charts API。现在,当我只运行第一个数据显示时,它不会获取循环内的数据。这是我的代码。我如何为此设置一个循环?使用Google Charts API的饼图不起作用

<html> 
    <head> 
     <script type="text/javascript" src="https://www.google.com/jsapi"></script> 
     <script type="text/javascript"> 
      google.load("visualization", "1", {packages:["corechart"]}); 
      google.setOnLoadCallback(drawChart); 
      function drawChart() { 
       var data = google.visualization.arrayToDataTable([ 
        ['Task', 'Hours per Day'], 
        $resultViewed = $this->model_report_product->getMostViewed(); 
        $stringResult ="var data= google.visualization.arrayToDataTable([ ['Product', 'Views'],"; 

        foreach($resultViewed as $resultKey => $resultValue) 
        { 
         //var_dump($resultValue); 
         $stringResult = $stringResult . "['".$resultValue['name']."',".$resultValue['quantity']."],"; 
         var_dump($stringResult); 
        } 
        $stringResult .= "]);"; 

        $this->data['Viewed'] = $stringResult; 
       ]); 

       var options = { 
        title: 'My Daily Activities' 
       }; 

       var chart = new google.visualization.PieChart(document.getElementById('chart_div')); 
       chart.draw(data, options); 
      } 
     </script> 
    </head> 
    <body> 
     <div id="chart_div" style="width: 900px; height: 500px;"></div> 
    </body> 
</html> 

回答

1

您是否在PHP代码中使用PHP标签? 从你的代码看来,你并不是。

无论如何,这种代码应该正常工作对您:

<?php 
    $resultViewed = $this->model_report_product->getMostViewed(); 

    foreach($resultViewed as $resultValue){ 
     $results[] = "['".$resultValue['name']."', ".$resultValue['quantity']."]"; 
    } 
    $stringResult = implode(",", $results); 
?> 
<html> 
    <head> 
     <script type="text/javascript" src="https://www.google.com/jsapi"></script> 
     <script type="text/javascript"> 
      google.load("visualization", "1", {packages:["corechart"]}); 
      google.setOnLoadCallback(drawChart); 

      function drawChart() { 
       var data = google.visualization.arrayToDataTable([ 
        ['Task', 'Hours per Day'], 
        <?php 
        print $stringResult; 
        ?> 
       ]); 

       var options = { 
        title: 'My Daily Activities' 
       }; 

       var chart = new google.visualization.PieChart(document.getElementById('chart_div')); 
       chart.draw(data, options); 
      } 
     </script> 
    </head> 
    <body> 
     <div id="chart_div" style="width: 900px; height: 500px;"></div> 
    </body> 
</html> 
+0

嗨, 也就是说错误在这里。我使用了PHP标签,但没有发生。 – 2012-07-16 06:12:38

+0

请看我更新的答案。 – naf 2012-07-16 18:03:34