2016-11-24 28 views
4

我想在Google圖表中使用我的PHP變量,但圖表無法讀取我的PHP標記。正如你可以看到下面的代碼,我把我的PHP變量放在腳本中。 (我在代碼頂部定義的PHP變量,結果是正確的)。我的代碼有什麼問題?有沒有解決方案?如果需要,請向我諮詢更多信息。謝謝。在Google餅圖中使用php變量

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

    var data = google.visualization.arrayToDataTable([ 
     ['Order', 'Amount'], 
     ['Completed',  '<?php echo$completed ?>'], 
     ['New',  '<?php echo$new ?>'] 
    ]); 

    var options = { 
     title: 'Total Order ' + <?php echo$total; ?> 
    }; 

    var chart = new google.visualization.PieChart(document.getElementById('piechart')); 

    chart.draw(data, options); 
    } 
</script> 
+0

什麼是呈現的代碼?控制檯中有任何錯誤? – chris85

+0

不,因爲圖表不顯示。但是,如果我將腳本中的php變量更改爲Integer,則Google圖表完美無缺。 @ chris85 –

+0

不是圖表的源代碼。該頁面是否空白?我也會在'echo'和變量之間加空格,但是這會破壞它。 – chris85

回答

2

工作示例。

<?php 
$completed = 50; 
$new = 10; 
$total = 30; 
?> 
<html> 
    <head> 
     <!--Load the AJAX API--> 
     <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
     <script type="text/javascript"> 


      google.charts.load('current', {'packages':['corechart']}); 
      google.charts.setOnLoadCallback(drawChart); 
      function drawChart() { 

       var data = google.visualization.arrayToDataTable([ 
        ['Order', 'Amount'], 
         ['Completed', parseInt('<?php echo $completed; ?>')], 
         ['New',  parseInt('<?php echo $new; ?>')] 
       ]); 

       var options = { 
        title: 'Total Order ' + <?php echo$total; ?> 
       }; 

        var chart = new google.visualization.PieChart(document.getElementById('piechart')); 

        chart.draw(data, options); 
       } 

     </script> 
    </head> 

    <body> 
     <div id="piechart"></div> 
    </body> 
</html> 
2

docs,對於谷歌可視化餅圖,必須有一個數據類型string柱和一個number列。

因此,您應該在呈現數據之前將Amount列解析爲integerfloat。你可以做到這一點在PHP本身或JavaScript作爲,

var data = google.visualization.arrayToDataTable([ 
     ['Order', 'Amount'], 
     ['Completed', parseInt('<?php echo $completed; ?>')], 
     ['New',  parseInt('<?php echo $new; ?>')] 
    ]); 

    var options = { 
     title: 'Total Order ' + parseInt('<?php echo $total; ?>') 
    }; 

您也可以使用JavaScript parseFloat(),而不是parseInt()如果包含十進制值的金額值。

-1

您可以在PHP中使用腳本。

但是,您不能在腳本中使用PHP。

它不起作用。