2016-02-17 2 views
0

Это мой array.php где данные JSON взяты из базы данных, и я получаю совершенный из ниже сценарияGoogle график не показывает с помощью AJAX вызова в PHP

$table = []; 
    $table['cols'] = array(
     array('id' => '', 'label' => 'Topping', 'type' => 'string'), 
     array('id' => '', 'label' => 'Slices', 'type' => 'number') 
    );  

$tableName = array('1' => "tb", '2' => 'tb1'); 
foreach ($tableName as $key => $value) { 

    $row = []; 
    $qry = "SELECT topping, slices FROM $value"; 
    $result = mysqli_query($con,$qry); 
    foreach ($result as $row) { 
     $temp = []; 
      $temp[] = array('v' => (string) $row['topping']); 
     $temp[] = array('v' => (int) $row['slices']); 
     $rows[] = array('c' => $temp);   
    } 
    $result->free(); 
      $table['rows'] = $rows; 
} 
mysqli_close($con); 
$jsonTable = json_encode($table, true); 
echo $jsonTable; 

** Array.php Выходные данные Ex: **

{"cols":[{"id":"","label":"Topping","type":"string"},{"id":"","label":"Slices","type":"number"}],"rows":[{"c":[{"v":"MAX"},{"v":150}]},{"c":[{"v":"MAX1"},{"v":59}]},{"c":[{"v":"MAX2"},{"v":15}]},{"c":[{"v":"MAX3"},{"v":153}]},{"c":[{"v":"MAX4"},{"v":8}]},{"c":[{"v":"MAX5"},{"v":25}]},{"c":[{"v":"MAX6"},{"v":65}]}] 

}


Это мой Ajax функции, где я caling данные array.php

var jsonData = $.ajax({ 
url: "array.php", 
dataType:"json", 
}).responseText; 

вар данных = новый google.visualization.DataTable (JSON.parse (jsonData)); var options = { title: 'My Daily Activities' }; var chart = new google.visualization.PieChart (document.getElementById ('piechart')); chart.draw (данные, параметры);

** Но я все еще получаю ошибки на это, пожалуйста, помогите **

+0

Pls любой может мне помочь в этом? – Rimaz

ответ

2

ОК, я скопировал ваш вывод JSON в PHP файл (jsondata.php), как это:

$out = '{"cols":[{"id":"","label":"Topping","type":"string"},{"id":"","label":"Slices","type":"number"}],"rows":[{"c":[{"v":"MAX"},{"v":150}]},{"c":[{"v":"MAX1"},{"v":59}]},{"c":[{"v":"MAX2"},{"v":15}]},{"c":[{"v":"MAX3"},{"v":153}]},{"c":[{"v":"MAX4"},{"v":8}]},{"c":[{"v":"MAX5"},{"v":25}]},{"c":[{"v":"MAX6"},{"v":65}]}]}'; 
echo $out; 

Использование что я изменил немного ваш Javascript

var jsonData = $.ajax({ 
     url: "jsondata.php", 
     dataType: "json", 
     async: false 
     }).responseText; 

    // Create our data table out of JSON data loaded from server. 
    var data = new google.visualization.DataTable(jsonData); 

    // Instantiate and draw our chart, passing in some options. 
    var chart = new google.visualization.PieChart(document.getElementById('piechart')); 
    var options = { title: 'My Daily Activities' }; 
    chart.draw(data, options); 

Примечание 2 вещи:

  • async:false внутри вызова Ajax. Это фактически противоречит самой сути Ajax, но именно так Google показывает примеры, и это был также самый простой способ решить вашу проблему.

  • The var data = new google.visualization.DataTable(jsonData);

Это работает для меня, надеюсь, что это решит вашу проблему.

Смежные вопросы