网页从MySQL生成患者体温图表时$未定义错误的解决方法
解决“$ is not defined”错误的方案
这个错误很常见——它意味着你的浏览器找不到$这个变量的定义,而$是jQuery的别名,所以核心问题是你的页面还没有加载jQuery库,就直接运行了依赖jQuery的代码。
下面是具体的修复步骤:
1. 提前引入jQuery库
在你的自定义脚本之前,先添加jQuery的加载脚本。推荐使用CDN(内容分发网络),加载速度快且稳定,比如:
<!-- 放在你的自定义script标签之前 --> <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
你也可以下载jQuery的本地文件,然后用相对路径引入,比如:
<script src="./js/jquery-3.7.1.min.js"></script>
2. 确保引入顺序正确
一定要让jQuery的加载脚本先于你写的那个包含$(document).ready()的脚本执行。浏览器是按顺序加载脚本的,如果你的自定义脚本先运行,此时jQuery还没加载,就会抛出“$ is not defined”的错误。
3. 额外提醒:别忘了引入Chart.js
你的代码里用到了new Chart()来生成图表,所以还要确保页面加载了Chart.js库,否则会出现新的“Chart is not defined”错误。同样可以用CDN引入:
<!-- 放在jQuery之后,你的自定义脚本之前 --> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
修复后的完整脚本结构大概是这样的:
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script> $(document).ready(function() { /** * call the data.php file to fetch the result from db table. */ $.ajax({ url : "/followdata_temp.php", //in followdata_temp.php data is declared. type : "GET", success : function(data){ console.log(data); var time = []; var temp = []; var len = data.length; for (var i = 0; i < len; i++) { time.push("" + data[i].time); temp.push(data[i].temp); } //get canvas var ctx = $("#line-chartcanvas"); var chartdata = { labels : time, datasets : [ { label : "Temperature", data : temp, backgroundColor : "blue", borderColor : "lightblue", fill : false, lineTension : 0, pointRadius : 5 } ] }; var chart = new Chart( ctx, { type : "line", data : chartdata }); }, error : function(data) { console.log(data); } }); }); </script>
做完这些后,刷新页面,应该就能正常加载jQuery和Chart.js,然后成功获取数据生成体温图表了。
内容的提问来源于stack exchange,提问作者Achal Katre
相关产品推荐
相关产品推荐

