Google图表无法正确显示值

时间:2013-11-04 10:03:43

标签: javascript php google-visualization

我无法正确显示Google Charts。我正在尝试使用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);
}
?>

这是图表输出的内容:

GoogleChart Output

有人可以对此有所了解并且可以帮我解决一下吗?

1 个答案:

答案 0 :(得分: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\": [";
        }