簡體   English   中英

從Google圖表的輸入中獲取值

[英]Getting values from input for Google Charts

我有一個以表格形式列出一些銷售數據的頁面。 我想附一張圖表。 由於我已經必須檢索該表的數據,因此我也想為Google構建數組並將其放入隱藏的輸入中以使用javascript進行檢索。 這就是javascript

     // Load the Visualization API and the piechart package.
google.load('visualization', '1.0', {'packages':['corechart']});


google.setOnLoadCallback(drawChart);

function drawChart() {
    var chartD = document.getElementById('chartD').value;
    var data = google.visualization.arrayToDataTable([chartD]);
    var options = {'title':'Sales'};
    var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
    chart.draw(data, options);
}

這是我從中獲取數據的輸入

<input type="hidden" id="chartD" value="['Date', 'Units Sold'], 
    ['03-01', 12.00], ['03-04', 32.00], ['03-06', 6.00],
    ['03-08', 19.00], ['03-11', 10.00], ['03-13', 5.00], ['03-15', 0]">

但是當我運行它時,我得到一個錯誤信息, 不是有效的2D數組 ,然后我像這樣直接從視圖頁面源中復制了值

var data = google.visualization.arrayToDataTable([['Date', 'Units Sold'], 
   ['03-01', 12.00], ['03-04', 32.00], ['03-06', 6.00], ['03-08', 19.00],
   ['03-11',    10.00], ['03-13', 5.00], ['03-15', 0]]);

而且效果很好。 有誰知道這是什么問題嗎?

這是正常的javascript功能,沒有Google獨有的功能或其他奇怪的功能。

將您的HTML隱藏的div元素放入文檔中:

<input type="hidden" id="chartD" value="['Date', 'Units Sold'],
 ['03-01', 12.00], ['03-04', 32.00], ['03-06', 6.00],
 ['03-08', 19.00], ['03-11', 10.00], ['03-13', 5.00], ['03-15', 0]">

現在測試這個JavaScript:

    var chartD = document.getElementById('chartD').value;
    var array = new Array(['Date', 'Units Sold'],      ['03-01',  12.00], ['03-04', 32.00], ['03-06', 6.00],     ['03-08', 19.00],  ['03-11', 10.00], ['03-13', 5.00], ['03-15', 0]);
    var array2 = new Array(chartD);
    alert(array.length);
    alert(array2.length);

這與標准javascript完全相同。

使用復制粘貼定義對象時,將得到一個包含8行2列的數組(因此長度為8)。

當用字符串定義對象時,將得到一個包含一行和一列的數組(包含一個很長的字符串)。

您為什么期望Google采取不同的行動?

您要么需要:

  1. 將完整的2D數組傳遞給Google
  2. 手動傳入數組定義字符串

所有這些都包含在文檔中

期望Google具有不同於javascript的時髦行為可能不是最好的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM