2016-11-24 4 views
4

Я хочу использовать переменную PHP в диаграмме Google, но диаграмма не может прочитать мой тег PHP. Поскольку вы можете видеть код ниже, я помещаю свою PHP-переменную в скрипт. (Переменная PHP, которую я определил в верхней части кода, и результат правильный). Что случилось с моим кодом? Есть ли решение для этого? Если необходимо, уточните у меня дополнительную информацию. Спасибо.Использовать переменную php в круговой диаграмме Google

<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 визуализации круговых диаграмм, должен быть один тип данных string колонка и один столбец number.

Для этого необходимо проанализировать столбец Amount до integer или float перед визуализацией данных. Вы можете сделать это в самом 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 в скриптах.

Это не сработает.