使用计算总和作为Google Chart

时间:2016-01-03 15:29:42

标签: javascript jquery google-visualization

我正在尝试使用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);

我尝试了各种不同的解决方案,其中一些是文档建议的,另一些是我在其他地方找到的类似方法的例子,但似乎没有什么工作。作为一个新手在这种事情上,我显然错过了一些简单或只是做错了。任何帮助将不胜感激,谢谢。

2 个答案:

答案 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]];

现在它按原样运作。