javascript - Google Chart and Uncaught Error: Invalid JSON string: -
in demo.php, have google chart visualization set stated below:
<!--load ajax api--> <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("visualization", "1", {packages:["corechart"]}); google.setonloadcallback(drawchart); function drawchart() { var jsonpiechartdata = $.ajax({ url: "getvehicledata.php", datatype:"json", async: false }).responsetext; // create our data table out of json data loaded server. var piechartdata = new google.visualization.datatable(jsonpiechartdata); var options = { title: 'vehicles in stock' }; var chart = new google.visualization.piechart(document.getelementbyid('piechart')); chart.draw(piechartdata, options); } </script> i have getvehicledata script written stated below well, have validated json on http://jsonlint.com/, still getting error on google chrome.
$sql_qry = "select `make`, count(*) total `vehicle` group `make` order count(*) desc"; $data = perform_query($db, $sql_qry); echo '{ "cols": [ { "id": "", "label": "make", "pattern": "", "type": "string" }, { "id": "", "label": "totalnumber", "pattern": "", "type": "number" } ], "rows": ['; foreach ($data $d){ //echo $d['make'] . $d['total']; echo ' { "c": [ { "v": "'.$d['make'].'", "f": null }, { "v": "'.$d['total'].'", "f": null } ] }'; } echo '] }' ; below error getting on google chrome:
uncaught error: invalid json string: { "cols": [ { "id": "", "label": "make", "pattern": "", "type": "string" }, { "id": "", "label": "totalnumber", "pattern": "", "type": "number" } ], "rows": [ { "c": [ { "v": "vauxhall", "f": null }, { "v": "2", "f": null } ] } { "c": [ { "v": "ford", "f": null }, { "v": "1", "f": null } ] } { "c": [ { "v": "toyota", "f": null }, { "v": "1", "f": null } ] } { "c": [ { "v": "mercedes", "f": null }, { "v": "1", "f": null } ] } { "c": [ { "v": "citreon", "f": null }, { "v": "1", "f": null } ] }] }
$sql_qry = "select `make`, count(*) total `vehicle` group `make` order count(*) desc"; $data = perform_query($db, $sql_qry); echo '{ "cols": [ { "id": "", "label": "make", "pattern": "", "type": "string" }, { "id": "", "label": "totalnumber", "pattern": "", "type": "number" } ], "rows": ['; foreach ($data $d){ //echo $d['make'] . $d['total']; echo ' { "c": [ { "v": "'.$d['make'].'", "f": null }, { "v": "'.$d['total'].'", "f": null } ] },'; // added , here, don't know php enough not add comma last loop } echo '] }' ; see comment - don't know php enough suppress , on last loop in foreach - i'm javascript nerd, know enough php dangerous only
edit: rewrite may better
$sql_qry = "select `make`, count(*) total `vehicle` group `make` order count(*) desc"; $data = perform_query($db, $sql_qry); $output = ''; foreach ($data $d){ if ($output != '') { $output .= ','; } $output .= '{ "c": [ { "v": "'.$d['make'].'", "f": null }, { "v": "'.$d['total'].'", "f": null } ] }'; } echo '{ "cols": [ { "id": "", "label": "make", "pattern": "", "type": "string" }, { "id": "", "label": "totalnumber", "pattern": "", "type": "number" } ], "rows": [' . $output . '] }' ;
Comments
Post a Comment