Geochart在包含PHP代码后无法正常工作

问题描述 投票:-1回答:1

当我包含PHP代码时,Geochart无法正常工作。

下面是添加PHP之前的代码,可以正常工作:

  google.load('visualization','1', {
    'packages':['geochart'],
  });
 google.setOnLoadCallback(drawVisualization);

  function drawVisualization() {var data = new google.visualization.DataTable();
      data.addColumn('number', 'LATITUDE');                                
      data.addColumn('number', 'LONGITUDE');
      data.addColumn('string', 'DESCRIPTION'); 
      data.addColumn('number', 'A:', 'value'); 
      data.addColumn({type:'string', role:'tooltip'});                        

data.addRows([[3.9374,102.3620, 'Jerantut', 0,'tooltip']]); //jerantut,phg

data.addRows([[ 4.7549,103.4156, 'Kuala Dungun', 1,'tooltip']]); //terengganu


    var options = {
      region: 'MY', // Africa
      displayMode: 'markers',
      resolution: 'provinces',
      colorAxis: {minValue: 0, maxValue: 0,  colors: ['#6699CC']},
      sizeAxis: {minValue: 1, maxValue:1,minSize:10,  maxSize: 25},
      legend: 'none',  
      enableRegionInteractivity: 'true', 
      backgroundColor: '#ffffff',
      datalessRegionColor: '#D2F5F4',
      defaultColor: '#f5f5f5',
    };

     var chart = new   google.visualization.GeoChart(document.getElementById('visualization')); 

下面是添加PHP代码后的代码:

function drawVisualization() {var data = new google.visualization.DataTable(
        data.addColumn('number', 'LATITUDE');
        data.addColumn('number', 'LONGITUDE');
        data.addColumn('string', 'DESCRIPTION');
        data.addColumn('number', 'A:', 'value'); 

$exec = mysqli_query($con,$query);
 while(echo json_encode( $row );){
data.addRows([['city_lat', 'city_long', 'student_city', 'count']]);
};

Database Structure

请让我知道添加PHP代码后出了什么问题以及如何解决。谢谢您的时间。

Database in detailed

php mysql google-visualization
1个回答
0
投票

猜想我会说你可以这样做,但是我要强调一点,我无法测试。

function drawVisualization() {
    var data = new google.visualization.DataTable(
        data.addColumn('number', 'LATITUDE');
        data.addColumn('number', 'LONGITUDE');
        data.addColumn('string', 'DESCRIPTION');
        data.addColumn('number', 'A:', 'value');

    <?php
        /*

            Iterate through the recordset
            and add a new row to the datatable
            for each result.

        */

        $res = mysqli_query($con,$query);
        while( $rs=$res->fetch_object() ){
            printf(
                'data.addRow[ %s, %s, %s, %d ]',
                floatval( $rs->city_lat ),
                floatval( $rs->city_long ),
                $rs->student_city,
                intval( $rs->count )
            );
        }

    ?>

    var chart = new google.visualization.GeoChart(document.getElementById('visualization'));
    var options = {
      region: 'MY', // Africa
      displayMode: 'markers',
      resolution: 'provinces',
      colorAxis: {minValue: 0, maxValue: 0,  colors: ['#6699CC']},
      sizeAxis: {minValue: 1, maxValue:1,minSize:10,  maxSize: 25},
      legend: 'none',  
      enableRegionInteractivity: 'true', 
      backgroundColor: '#ffffff',
      datalessRegionColor: '#D2F5F4',
      defaultColor: '#f5f5f5',
    };

    chart.draw( data, options );
}
© www.soinside.com 2019 - 2024. All rights reserved.