I want use JSON in Google Charts. This is my JSON Result:
[
{
"Ders": "Coğrafya",
"SoruSayisi": "17"
},
{
"Ders": "deneme",
"SoruSayisi": "7"
},
{
"Ders": "FEN BİLGİSİ",
"SoruSayisi": "8"
},
{
"Ders": "Geometri",
"SoruSayisi": "5"
}
]
My PHP Code:
public function getLessonCount()
{
$result = $this->getModelsManager()->createBuilder()
->addFrom("\App\Models\Content\Dersler", "d")
->columns(array("Ders"=>"d.dersAdi","SoruSayisi"=>"count(q.dersId)"))
->innerJoin("\App\Models\CmsQuestion",'q.dersId=d.dersId', "q")
->groupBy("d.dersAdi")
->getQuery()->execute();
return $result;
}
JavaScript code in AngularJS:
//google visualization loader
google.load('visualization', '1', {'packages':['corechart']});
google.setOnLoadCallback(getDatas());
function drawChart() {
var data = new google.visualization.DataTable([$scope.datas]);
var options = {
title: 'Toplam Soru Sayısı: '
};
var chart = new google.visualization.PieChart(document.getElementById('piechart'));
chart.draw(data, options);
}
//call getDatas Function to receive JSON result
function getDatas(){
//call web service to get json
WebService.getDatas(function (data) {
if (data) {
//put data in scope.datas
$scope.datas =data;
drawChart();
}
});
}
Also HTML code:
<div data-ng-controller="AnalizController">
<div class="panel panel-primary">
<div class="panel-heading">
<h3>Analiz</h3>
</div>
<div class="panel-body">
<div class="AnalyzeWrapper">
<div class="AllQuestions">
<div id="piechart" style="width: 40%; height: 40%"></div>
</div>
</div>
</div>
</div>
</div>
But I got an error in HTML page:
Table has no columns.