我正在尝试使用Google Visualization API创建一个图表,使用javascript计算对已检查单选按钮中的值进行求和,但是我无法让API接受输出作为散点图的数据。< / p>
使用Javascript:
$(document).ready(function(){
var radios = $('input[type=radio]');
var evalResult = function(){
var numQuestions = 80;
var sum1 = 0;
var sum2 = 0;
var expr_str = '';
for(var i = 1; i <= numQuestions; i++){
var q = $("input[type=radio][name=q"+i+"]:checked").val();
var value = q.split(',');
sum1 += parseInt(value[0]);
sum2 += parseInt(value[1]);
}
var total = eval("['',''],[" + sum1 + "," + sum2 + "]");
}
evalResult();
radios.change(evalResult);
});
我的印象是,我需要做的就是以API接受它的方式格式化数据,然后像这样调用它:
var data = new google.visualization.arrayToDataTable(total);
我尝试了各种不同的解决方案,其中一些是文档建议的,另一些是我在其他地方找到的类似方法的例子,但似乎没有什么工作。作为一个新手在这种事情上,我显然错过了一些简单或只是做错了。任何帮助将不胜感激,谢谢。
答案 0 :(得分:1)
您需要在功能
之前定义total
$(document).ready(function(){
var radios = $('input[type=radio]');
var total = 0; //<<<<<<<<<<<<<<<<<< here
var evalResult = function(){
var numQuestions = 80;
var sum1 = 0;
var sum2 = 0;
var expr_str = '';
for(var i = 1; i <= numQuestions; i++){
var q = $("input[type=radio][name=q"+i+"]:checked").val();
var value = q.split(',');
sum1 += parseInt(value[0]);
sum2 += parseInt(value[1]);
}
total = eval("['',''],[" + sum1 + "," + sum2 + "]"); // <<< remove var from here
}
alert(total); // output should be 0
evalResult();
alert(total); // output should be your total
radios.change(evalResult);
});
答案 1 :(得分:0)
找出它无法正常工作的原因,需要使用DataTable可以理解的格式。
total = [['',''],[sum1, sum2]];
现在它按原样运作。