PHP:chart_db.php
<?php
require_once ('dbh.inc.php');
$JSON_Response = array();
//Counts the number of Active
$count_active = mysqli_query($db, "SELECT client_id FROM client WHERE status = 1");
$JSON_Response['active'] = mysqli_num_rows($count_active);
//Counts the number of Inactive
$count_inactive = mysqli_query($db, "SELECT client_id FROM client WHERE status = 0");
$JSON_Response['inactive'] = mysqli_num_rows($count_inactive);
error_log('hello');
echo json_encode($JSON_Response);
?>
JS:chart.js $(document).ready(function(){
$.ajax({
url:"http://localhost/FAME/private/includes/chart_db.php",
method: "GET",
success: function(response){
var data = JSON.parse(response);
var activeData = text(data.active);
var inactiveData = text(data.inactive);
console.log(activeData);
var ctx = document.getElementById('piechart').getContext('2d');
var statusChart = new Chart(ctx, {
type: 'doughnut',
data: {
labels: ['Active', 'Inactive'],
datasets: [{
pointStyle: 'circle',
backgroundColor: [ 'rgb(78, 115, 223)', 'rgb(25, 179, 211)' ],
data: activeData, inactiveData
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
segmentShowStroke: false,
cutoutPercentage: 70,
legend: {
onClick: false,
position: 'bottom',
labels: {
usePointStyle: true
}
}
}
});
}
});
});
问题:问题在于图表中的数据未显示。整个图表未显示。并使用chrome检查的日志:它表示存在错误:“未捕获的ReferenceError:未定义文本”。
这与php,mysql或xampp无关。您正在使用一种称为text
的未定义方法。错误消息说明了一切。检查ajax成功的第三行和第四行。您有:
var activeData = text(data.active);
替换为:
var activeData = data.active;
看看会发生什么。