2014-02-13 5 views
0

Мне нужно получить сумму столбца из нескольких (5) таблиц и добавить эти суммы в 5 экземпляров в круговой диаграмме Google. Код, который у меня есть, довольно близок, я думаю, но просто не могу понять, где я иду не так.Получите сумму столбца таблицы и добавьте в диаграмму Google

function drawChart() { 

     // calculate the sum of each table 
     function sum($inputs) { 
     var sum=0; 
     //iterate through each input and add to sum 
     $inputs.each(function() {  
       sum += parseInt($(this).text());      
     });   

     var data = google.visualization.arrayToDataTable([ 
      ['Type', 'Cost'], 
      ['Expense',  sum($('#expenses .amount'))], 
      ['Savings',  sum($('#savings.amount'))], 
      ['Commute', 2], 
      ['Watch TV', 2], 
      ['Sleep', 7] 
     ]); 

     var chart = new google.visualization.PieChart(document.getElementById('piechart_3d')); 
     chart.draw(data, options); 
     } 
    } 
+0

Что опции в функции chart.draw? – Vinoth

+0

Я удалил варианты для краткости. Должен был упомянуть, что – user537137

ответ

1

Вам необходимо вернуть значение суммы в сумму функции.

function drawChart() { 

    // calculate the sum of each table 
    function sum($inputs) { 
    var sum=0; 
    //iterate through each input and add to sum 
    $inputs.each(function() {  
      sum += parseInt($(this).text());      
    }); 
    return sum; 
}   

    var data = google.visualization.arrayToDataTable([ 
     ['Type', 'Cost'], 
     ['Expense',  sum($('#expenses .amount'))], 
     ['Savings',  sum($('#savings.amount'))], 
     ['Commute', 2], 
     ['Watch TV', 2], 
     ['Sleep', 7] 
    ]); 

    var chart = new google.visualization.PieChart(document.getElementById('piechart_3d')); 
    chart.draw(data, options); 

} 
+0

Это работает, ура – user537137

+0

Последняя скобка не требовалась. мой плохой – anurupr

1

Попробуйте следующее:

function drawChart() { 

    // calculate the sum of each table 
    function sum($inputs) { 
    var sum=0; 
    //iterate through each input and add to sum 
    $inputs.each(function() {  
      sum += parseInt($(this).text());      
    });   
    return sum; 
    } 
    var data = google.visualization.arrayToDataTable([ 
     ['Type', 'Cost'], 
     ['Expense',  sum($('#expenses .amount'))], 
     ['Savings',  sum($('#savings.amount'))], 
     ['Commute', 2], 
     ['Watch TV', 2], 
     ['Sleep', 7] 
    ]); 

    var chart = new google.visualization.PieChart(document.getElementById('piechart_3d')); 
    chart.draw(data, options); 
} 
+0

Это возвращает только первый - расходы ... – user537137

+0

Вы издеваетесь? Это то же самое решение, что и то, которое вы отметили в качестве ответа! : D –

+0

Извините, просто пошел на вершину. :) – user537137

Смежные вопросы