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);
}
?>

これはチャートが出力しているものです:

GoogleChart 出力

誰かがこれに光を当てて、それを修正するのを手伝ってもらえますか?

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 に答える