ChartJS |如何使用MySQL(MariaDB)表和PHP中的数据创建Donut Chart
时间:2020-02-23 14:45:50 来源:igfitidea点击:
在本教程中,我们将学习使用MySQL(MariaDB)表和PHP中的数据创建甜甜圈图。
任务
我们的任务是为两个团队-TeamA和TeamB创建甜甜圈图。
甜甜圈图将显示5场比赛中球队的得分,即比赛1,比赛2,...,比赛5。
先决条件
PHP的localhost开发环境。
如果您使用的是Microsoft Windows,则可以使用XAMPP。
如果您使用的是Apple macOS,则可以使用MAMP。
XAMPP和MAMP都将具有PHP和MySQL(MariaDB),因此您不必分别安装它们。
htdocs
准备好开发环境后,需要将chartjs2项目放置在本地主机的公用文件夹中。
此公用文件夹通常称为htdocs。
项目结构
我们将从以下项目结构开始。
我们有一个css文件夹,其中包含样式表文件。
我们有一个js文件夹,其中包含一些javascript文件。
后端部分与本教程相同-ChartJS |如何使用MySQL表和PHP中的数据绘制折线图
现在该是我们从事前端工作的时候了。
在项目文件夹chartjs2中创建一个新的html文件,并在js文件夹中创建一个新的js文件。
我将html文件命名为" doughnut-db-php.html",将js文件命名为" doughnut-db-php.js"。
HTML
打开doughnut-db-php.html文件,然后编写以下内容。
<!DOCTYPE html> <html> <head> <title>ChartJS - Doughnut</title> <link href="css/default.css" rel="stylesheet"> </head> <body> <div class="chart-container"> <div class="doughnut-chart-container"> <canvas id="doughnut-chartcanvas-1"></canvas> </div> <div class="doughnut-chart-container"> <canvas id="doughnut-chartcanvas-2"></canvas> </div> </div> <!-- javascript --> <script src="js/jquery.min.js"></script> <script src="js/Chart.min.js"></script> <script src="js/doughnut-db-php.js"></script> </body> </html>
JavaScript
现在打开doughnut-db-php.js文件,并编写以下代码。
$(document).ready(function() { /** * call the data.php file to fetch the result from db table. */ $.ajax({ url : "http://localhost/chartjs2/api/data.php", type : "GET", success : function(data){ console.log(data); var score = { TeamA : [], TeamB : [] }; var len = data.length; for (var i = 0; i < len; i++) { if (data[i].team == "TeamA") { score.TeamA.push(data[i].score); } else if (data[i].team == "TeamB") { score.TeamB.push(data[i].score); } } var ctx1 = $("#doughnut-chartcanvas-1"); var ctx2 = $("#doughnut-chartcanvas-2"); var data1 = { labels : ["match1", "match2", "match3", "match4", "match5"], datasets : [ { label : "TeamA score", data : score.TeamA, backgroundColor : [ "#DEB887", "#A9A9A9", "#DC143C", "#F4A460", "#2E8B57" ], borderColor : [ "#CDA776", "#989898", "#CB252B", "#E39371", "#1D7A46" ], borderWidth : [1, 1, 1, 1, 1] } ] }; var data2 = { labels : ["match1", "match2", "match3", "match4", "match5"], datasets : [ { label : "TeamB score", data : score.TeamB, backgroundColor : [ "#FAEBD7", "#DCDCDC", "#E9967A", "#F5DEB3", "#9ACD32" ], borderColor : [ "#E9DAC6", "#CBCBCB", "#D88569", "#E4CDA2", "#89BC21" ], borderWidth : [1, 1, 1, 1, 1] } ] }; var options = { title : { display : true, position : "top", text : "Doughnut Chart", fontSize : 18, fontColor : "#111" }, legend : { display : true, position : "bottom" } }; var chart1 = new Chart( ctx1, { type : "doughnut", data : data1, options : options }); var chart2 = new Chart( ctx2, { type : "doughnut", data : data2, options : options }); }, error : function(data) { console.log(data); } }); });