Javascript 输入值更改时Chart.js折线图不更新
我在这个涉及Chart.js的问题上有点纠结,我试图弄清楚这个bug是因为我的代码还是与API有关 我有一个简单的图表,它通过ajax从数据库中获取一些权重信息,并在表和chart.js折线图中显示这些信息。我有一个切换按钮,可以在千克和磅之间切换输入和显示数字(使用有些愚蠢的逻辑,我计划稍后清理),但是当使用千克时,图形中没有显示任何内容,但表格输入很好,并且使用控制台时,图形数据似乎没有任何错误 这看起来很奇怪,但将数据[i]乘以Javascript 输入值更改时Chart.js折线图不更新,javascript,html,mysql,ajax,chart.js,Javascript,Html,Mysql,Ajax,Chart.js,我在这个涉及Chart.js的问题上有点纠结,我试图弄清楚这个bug是因为我的代码还是与API有关 我有一个简单的图表,它通过ajax从数据库中获取一些权重信息,并在表和chart.js折线图中显示这些信息。我有一个切换按钮,可以在千克和磅之间切换输入和显示数字(使用有些愚蠢的逻辑,我计划稍后清理),但是当使用千克时,图形中没有显示任何内容,但表格输入很好,并且使用控制台时,图形数据似乎没有任何错误 这看起来很奇怪,但将数据[i]乘以。重量测量值乘以2.20462似乎可以显示出来,但任何其他乘数
。重量测量值
乘以2.20462似乎可以显示出来,但任何其他乘数(或无乘数)都只能给出一个空白图。在所有情况下,表都显示良好
以下是相关代码:
// loop through data rows, appending html on new lines
for (var i = 0; i < data.length; i++){
if (islbs == false){
var user_weight_date = data[i].weight_date;
var user_weight = parseFloat(data[i].weight_measurement).toFixed(2);
var user_weight_id = parseInt(data[i].weight_entry_id);
}else{
var user_weight_date = data[i].weight_date;
var user_weight = parseFloat(data[i].weight_measurement * 2.20462).toFixed(2);
var user_weight_id = parseInt(data[i].weight_entry_id);
}
// output data to a table for debugging
$('#output').append("<br /><b>date: </b>"+user_weight_date+"<b> weight: </b>"+user_weight+"<button class=\"remove_weight_button\" id=\""+user_weight_id+"\">x</button>");
// add weight info to weight chart data array
lineChartData.datasets[0].data[i] = user_weight;
lineChartData.labels[i] = user_weight_date;
}
// redraw the chart
new Chart(document.getElementById("line").getContext("2d")).Line(lineChartData);
数据以浮点形式存储在mysql中尝试更改
lineChartData.datasets[0]。data[i]=用户权重代码>至线形图表数据。数据集[0]。数据[i]=+用户权重
(在“user\u weight”变量之前添加一个+
,强制它成为一个数字)。天哪,这样做有效,你是一个魔术师。事实是,我不知道为什么在另一种情况下它已经起作用了:)这有点奇怪。
// ajax call to submit weight form data to the database, calls getWeightData() to refresh html on completion
$("#weight_tracker_form").submit(function(){
if (islbs === true){
$converted_weight = $("#weight").val() / 2.20462;
}
else{
$converted_weight = $("#weight").val();
}
$.ajax({
type: "POST",
url: "weight_tracker_process.php",
data: {
weight: $converted_weight,
date: $("#date").val(),
weight_unit_lbs: islbs,
action: "insert"
},
success: function(){
getWeightData();