javascript - 在图表中显示数据库中的项目
问题描述
我想在图表中显示每张试卷的平均成绩。我的问题是,当我从数据库中捕获数据时,我将其存储在一个数组中,因此我无法将这些值打印为数组列表,例如 ["a","b","c","d","e"]
或[44,100,50.29,100]
在 var xValues 和 var yValues 中使用它,我也尝试使用foreach
,但它不起作用。请帮忙。
/* 这里是 JS 代码 */
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js"></script>
<script>
var xValues =<?php foreach($examPapertitle as $title) {
echo $title;
}; ?>
var yValues =<?php foreach($avgcountresult as $average) {
echo $average;
}; ?>
var barColors = ["red", "green","blue","orange","brown"];
new Chart("myChart", {
type: "bar",
data: {
labels: xValues,
datasets: [{
backgroundColor: barColors,
data: yValues
}]
},
options: {
legend: {display: false},
title: {
display: true,
text: "Average of Results"
}
}
});
</script>
/* 这里是 HTML 代码 */
$examPapertitle=array();
$avgcountresult= array();
$fetchresult = mysqli_query($conn, "SELECT AVG(results.percentage), exam_paper.examTitle FROM results INNER JOIN exam_paper ON results.examPaperID = exam_paper.examPaperID GROUP by results.examPaperID ORDER by results.examPaperID");
while($rowresult= mysqli_fetch_assoc($fetchresult)){
$examPapertitle[] = $rowresult['examTitle'];
$avgcountresult[] = $rowresult['AVG(results.percentage)'];
}
<canvas id="myChart" style="width:100%;max-width:600px"></canvas>
解决方案
我相信你的问题是你var xValues =
需要一个让我们说的输入,[44,100,50.29,100]
而不是你在呼应4410050.29100
因此,您需要echo
正确设置这些值,您可以像这样更改 php 块:
var xValues =[<?php foreach($examPapertitle as $k=>$title) {
echo $title.($k>0?",":"");
}; ?>]
或者使用更容易阅读的功能:
var xValues =[<?php echo implode($examPapertitle,",") ?>]
如果您的值是数字,则需要将这些值括在字符串的引号中,如下所示:
var xValues =["<?php echo implode($examPapertitle,'","') ?>"]
如果您需要有关内爆如何工作的更多信息,您可以在此处查看它的手册
PS:混合 php 和 javascript 时的一个方便提示是始终通过 Web 检查器检查您的 php 输出(也称为浏览器源文件)。它使捕获此类问题变得更加容易。
推荐阅读
- rabbitmq - 对于高消息量,为什么对于同一条消息,我在 rabbitmq 中收到 frame_size 错误?
- android - 通过接收纬度和经度在地图上添加标记另一个活动
- java - 如何存储/排队要保存的多张照片以使它们都可以离线使用?
- javascript - 如何在不丢失选项“value=”功能的情况下限制数据列表选项?
- android - 对于 Windows,Gradle 文件路径太长
- javascript - 什么是 JavaScript 的 CompositionEvent?请举例
- node.js - Nodejs不会将散列密码保存到mysql db
- c# - 带逗号的TextBox变成sql
- python - Python:从库中随机选择抽认卡游戏的密钥
- javascript - 单击时突出显示表格(css/html)上的单元格