2012-04-12 4 views
2

Im пытается передать переменную в диаграмму google, но когда я это делаю, график перестает отображаться, моя цель состоит в том, чтобы график менялся каждый раз, когда я вводил другое число в поле ввода но им просто нечего делать прямо сейчас. Это то, что у меня есть, может кто-то, пожалуйста, предложить некоторые рекомендации о том, что я делаю неправильно?Передача переменной в Google Piechart

Javascript

<script type="text/javascript" src="https://www.google.com/jsapi"></script> 

    <script type="text/javascript"> 
     google.load('visualization', '1', {packages: ['corechart']}); 
    </script> 

    <script type="text/javascript"> 
     function numbers(){ 
      var work_field = document.forms['work_form']['work_n_field'].value; 
      var work_div = document.getElementById('number-work'); 
      var numberschart = work_div.innerHTML = work_field; 
      return false; 
     }; 

     function drawVisualization() { 
      // Create and populate the data table. 
     var data = new google.visualization.DataTable(); 
     data.addColumn('string', 'Task'); 
     data.addColumn('number', 'Hours per Day'); 
     data.addRows(5); 
     data.setValue(0, 0, 'Work'); 
//Right here is where I pass my variable into the chart 
     data.setValue(0, 1, numberschart); 
//And I leave the rest here until I define more input field. 
     data.setValue(1, 0, 'Eat'); 
     data.setValue(1, 1, 2); 
     data.setValue(2, 0, 'Commute'); 
     data.setValue(2, 1, 2); 

     // Create and draw the visualization. 
     new google.visualization.PieChart(document.getElementById('visualization')). 
      draw(data, { 
      title:"Mortgage Rates", 
      colors: ['#a4b12d', '#818e0a', '#5c6601', '#f0fd79', '#dbe864'], 
      }); 
     }  
     google.setOnLoadCallback(drawVisualization); 
    </script> 

Html

<div id="visualization" style="width: 400px; height: 300px;"></div> 
    <form name="work_form" onsubmit="return numbers()"> 
    <label id="n-work-label">Work</label><input name="work_n_field"/> 
    <button name="submit" id="submit" value="submit" onclick="numbers()">Submit</button> 
    </form> 
    <div id="number-work"></div> 
    </div> 

Любая помощь очень ценится, спасибо

Я также добавил его Js скрипку, но при добавлении диаграммы в ресурсе похоже, не обнаруживает его. http://jsfiddle.net/pkCCa/

ответ

4

Это работает для меня:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8" /> 
     <title>Example</title> 
     <script type="text/javascript" src="https://www.google.com/jsapi"></script> 
     <script type="text/javascript"> 
       var numberschart = 10; //<- Initial value 
       google.load('visualization', '1', {packages: ['corechart']}); 

       function numbers(){ 
         var work_field = document.forms['work_form']['work_n_field'].value; 
         var work_div = document.getElementById('number-work'); 
         numberschart = work_div.innerHTML = work_field; 
         drawVisualization(); 
         return false; 
       }; 

       function drawVisualization() { 
        // Create and populate the data table. 
        var data = new google.visualization.DataTable(); 
        data.addColumn('string', 'Task'); 
        data.addColumn('number', 'Hours per Day'); 
        data.addRows(5); 
        data.setValue(0, 0, 'Work'); 
        //data.setValue(0, 1, 11); 
        data.setValue(0, 1, parseInt(numberschart));//<- The value you get from input field is a string, Google API will throw an error 
        data.setValue(1, 0, 'Eat'); 
        data.setValue(1, 1, 2); 
        data.setValue(2, 0, 'Commute'); 
        data.setValue(2, 1, 2); 

        // Create and draw the visualization. 
        new google.visualization.PieChart(document.getElementById('visualization')). 
         draw(data, { 
          title:"Mortgage Rates", 
          colors: ['#a4b12d', '#818e0a', '#5c6601', '#f0fd79', '#dbe864'], 
          animation:{ 
           duration:1000, 
           easing: 'out', 
          }, 
          vAxis: { 
           minValue:0, 
           maxValue:1000 
          }, 
         }); 
        }  
       google.setOnLoadCallback(drawVisualization); 
     </script> 
    </head> 
    <body> 
     <div id="visualization" style="width: 400px; height: 300px;"></div> 
     <form name="work_form" onsubmit="return false"> 
      <label id="n-work-label">Work</label><input name="work_n_field"/> 
      <button name="submit" id="submit" value="submit" onclick="numbers();return false;">Submit</button> 
     </form> 
     <div id="number-work"></div> 
    </body> 
</html> 
+0

Благодаря этим работал отлично! – user874185

+0

BTW, я просто понял, что анимация не работает для PieCharts :-( –

+0

да, я знаю, что это отстой, – user874185

0

Попробуйте это:

http://jsfiddle.net/schawaska/pkCCa/2/

Примечание: Это не сработает на jsfiddler, потому что ключ, который вы используете, не настроен для своего домена. Примерить среды и дайте мне знать

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