2013-03-07 54 views
1

我正在尝试从Google工作表执行一个循环,从而使用a0,a1,a2等来创建循环。我能够手动设置变量,但我无法获得正确的循环。Google表格中的循环

google.load('visualization', '1', { 
    packages: ['gauge'] 
}); 
google.setOnLoadCallback(queryValue); 

function queryValue() { 
    var query = new google.visualization.Query('https://spreadsheets.google.com/spreadsheet/tq?range=B22:B37&key=0AhCv9Xu_eRnSdFNhSzNQUFd3b1ZfRHgtQURINFpzeGc&gid=7'); 
    query.send(function (response) { 
     if (response.isError()) { 
      alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage()); 
      return; 
     } 
     var data = response.getDataTable(); 

     //date label loop 
     for (var i = 0; i <= 15; i++) { 
      document.getElementById('b' + (i + 22)).innerHTML = data.getValue(i, 0); 
      console.log("i =" + b22) 
     } 

    }); 
    queryValue1() 
} 

function queryValue1() { 
    var query = new google.visualization.Query('https://spreadsheets.google.com/spreadsheet/tq?range=A22:A37&key=0AhCv9Xu_eRnSdFNhSzNQUFd3b1ZfRHgtQURINFpzeGc&gid=7'); 
    query.send(function (response) { 
     if (response.isError()) { 
      alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage()); 
      return; 
     } 
     var data1 = response.getDataTable(); 
     var a1 = data1.getValue(0, 0); 
     var a2 = data1.getValue(1, 0); 
     var a3 = data1.getValue(2, 0); 
     var a4 = data1.getValue(3, 0); 
     var a5 = data1.getValue(4, 0); 
     var a6 = data1.getValue(5, 0); 
     var a7 = data1.getValue(6, 0); 
     var a8 = data1.getValue(7, 0); 
     var a9 = data1.getValue(8, 0); 
     var a10 = data1.getValue(9, 0); 
     var a11 = data1.getValue(10, 0); 
     var a12 = data1.getValue(11, 0); 
     var a13 = data1.getValue(12, 0); 
     var a14 = data1.getValue(13, 0); 
     var a15 = data1.getValue(14, 0); 
     var a16 = data1.getValue(15, 0); 

     queryValue3(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16); 
    }); 


} 

function queryValue3(met1, met2, met3, met4, met5, met6, met7, met8, met9, met10, met11, met12, met13, met14, met15, met16) { 
    var query3 = new google.visualization.Query('https://spreadsheets.google.com/spreadsheet/tq?range=B2:B17&key=0AhCv9Xu_eRnSdFNhSzNQUFd3b1ZfRHgtQURINFpzeGc&gid=10'); 
    query3.send(function (response) { 
     if (response.isError()) { 
      alert('Error in query3: ' + response.getMessage() + ' ' + response.getDetailedMessage()); 
      return; 
     } 

     var data3 = response.getDataTable(); 

     var m1 = data3.getValue(0, 0); 
     var m2 = data3.getValue(1, 0); 
     var m3 = data3.getValue(2, 0); 
     var m4 = data3.getValue(3, 0); 
     var m5 = data3.getValue(4, 0); 
     var m6 = data3.getValue(5, 0); 
     var m7 = data3.getValue(6, 0); 
     var m8 = data3.getValue(7, 0); 
     var m9 = data3.getValue(8, 0); 
     var m10 = data3.getValue(9, 0); 
     var m11 = data3.getValue(10, 0); 
     var m12 = data3.getValue(11, 0); 
     var m13 = data3.getValue(12, 0); 
     var m14 = data3.getValue(13, 0); 
     var m15 = data3.getValue(14, 0); 
     var m16 = data3.getValue(15, 0); 

     var red22 = "<span style='color:#ff0000'> "; 
     var yellow22 = "<span style='color:#FF9900'> "; 
     var green22 = "<span style='color:#009900'> "; 

此代码查询谷歌的表和页面动态变化的数据被记录的每月吸引16个计并在仪表标签改变颜色相匹配,对仪表,红色,黄色或绿色的颜色。 This is the page

正如你所看到的,我有一些改进的空间。我已经设法解决所有问题,但我缩短了几个循环。

回答

0

我认为返回一个数组,而不是一个变量会更有效。

事情是这样的:

var a = []; 
for (var z = 0; z <= 15; z++) { 
    a[z] = data1.getValue(z, 0); 
} 

要获得A0的值,A1,A2,等你,而不是只使用一个[0],A [1],A [2],等等。

+0

我如何将值传递到下一个函数?在queryValue行中出现意外标识符的错误。 – 2013-03-07 04:33:11

+0

好的,让我们退后一步。你想用数据完成什么?变量A0到A15创建后会发生什么?一旦我们弄清楚了,我们可以继续研究如何做到最好。 – jmac 2013-03-07 04:52:23

+0

我发布了更多的代码和链接到页面。这一切正常,但我缺少两个循环。我试图让他们无济于事。 – 2013-03-08 01:15:14