【发布时间】:2017-03-16 13:28:08
【问题描述】:
我想用 Chart.js 画一个饼图。我想动态创建图表,因为用户首先需要做出一些选择来过滤图表中使用的数据。
我在页面上有一个画布:
<canvas id="PieChart"width="54" height="27" style="display: block; width: 54px; height: 27px;"></canvas>
我有代码来做 ajax 调用
$('.rappofiler').change(function() {
console.log('render report');
$.ajax({
url: "../controllers/reportController.php",
type: 'POST',
dataType: 'html',
data: {
'action': 'openIssues',
'filter1' : $('#filter1').val(),
'filter2' : $('#filter2').val()
}
}).done(function (chartdata) {
var parsedChartdata = $.parseJSON(chartdata);
// now draw the chart
})
ajax 调用将返回如下所示的 json:
[{"description":"team1","number":11},{"description":"team2","number":408},{"description":"team3","number":12}]
返回值的数量会有所不同。我现在必须以某种方式将 ajax 调用的结果与绘制饼图的代码结合起来,如下所示:
var data = {
labels: [
"Red",
"Blue",
"Yellow"
],
datasets: [
{
data: [300, 50, 100],
backgroundColor: [
"#FF6384",
"#36A2EB",
"#FFCE56"
],
hoverBackgroundColor: [
"#FF6384",
"#36A2EB",
"#FFCE56"
]
}]
};
最好的方法是什么?请记住,我无法更改 ajax 调用后返回数据的方式。
【问题讨论】:
标签: javascript jquery ajax chart.js