2016-11-24 3 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によると、Googleの可視化円グラフのために、1つのデータ型stringの列と1つのnumber列が存在しなければなりません。

データをレンダリングする前にAmount列をintegerまたはfloatに解析する必要があります。あなたの量の値は、小数点値を含む場合

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()使用することができ、PHP自体にとして、またはJavaScriptでそれを行うことができます。

-1

PHPでスクリプトを使用できます。

ただし、スクリプトでPHPを使用することはできません。

これは動作しません。

関連する問題