0

我无法正确显示 Google 图表。我正在尝试使用 Ajax 和 PHP 来做到这一点。

这是页面上加载的代码:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type='text/javascript'>

    // Dummy Array for now
    <?php
        $php_array = array(
        array('Terms', 'Visits'),
        array('test', 25),
        array('joke', 25),
        array('funny', 50),
    );

    //Convert the PHP Array into a Javascript Array
    $js_array = json_encode($php_array);
    echo "var arrTableData = ". $js_array . ";\n";
    ?>

    google.load("visualization", "1", {packages:["corechart"]});
    google.setOnLoadCallback(drawCharts);

    function drawCharts(){

        // Each chart function

        $.getJSON('charts_ajax.php',{'a' : 'terms', 'd'  : arrTableData }, function(data){

            if(data){

                initGoogleChart(data)

            }else {
                console.log("There is no data coming back");
            }
        });


    }
    function initGoogleChart(data){

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

        var options = {
            title: 'Title'
        };

        var chart = new google.visualization.PieChart(document.getElementById('terms-table'));
        chart.draw(tableData, options);
    }
</script>

在charts_ajax.php 文件中有以下数据:

<?php
if ($_GET['a'] == "terms") {

    $arrTableData = $_GET['d'];

    echo json_encode($arrTableData);
}
?>

这是图表输出的内容:

谷歌图表输出

任何人都可以对此有所了解并可能帮助我解决它吗?

4

1 回答 1

0

您是否尝试过将数据转换为 Google Charts JSON 格式?这是一个例子。

    foreach($arrTableData as $r2) {
        if(!isset($google_JSON2)) {    
            $google_JSON2 = "{\"cols\": [";
            $column = array_keys($r2);

            foreach($column as $key=>$value) {
                $google_JSON_cols2[]="{\"id\": ".$key.", \"label\": \"".$value."\", \"type\": \"string\"}";
            }    

            $google_JSON2 .= implode(",",$google_JSON_cols2)."],\"rows\": [";
        }
于 2013-11-04T10:42:22.903 回答