2012-06-04 31 views
0

我有一个2阵列,我从PHP获得,放入一个单一的2D JavaScript数组。我试图用它来自动填充Google Chart DataTable,但到目前为止我还没有成功。 我能想到的唯一的事情是,也许数组ix MxN维度,而功能需要一个NxM数组?Googlecharts arraytodatatable可能的维度问题?

要么不行,因为第一个数组是由数字组成的?

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
<title>Pressure Monitor</title> 
    <script type="text/javascript"> 
    var samptable = new Array(); 
    samptable[0] = new Array(2); 
    samptable[0,0]= nbsamples; //first array obtained from php 
    samptable[0,1]= samples; //second array obtained from php. both are merged into a 2d array 
    </script> 

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

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

    <script type="text/javascript"> 
    //var data; 
    function drawVisualization() { 

    var data = google.visualization.arrayToDataTable(samptable[0]); 
    // Create and draw the visualization. 
    new google.visualization.LineChart(document.getElementById('visualization')). 
     draw(data, {curveType: "function", 
        width: 500, height: 400, 
        vAxis: {maxValue: 10}} 
     ); 
    } 
    //function draw(){ 

    //} 
    google.setOnLoadCallback(drawVisualization); 
    </script> 

</head> 
<body style="font-family: Arial;border: 0 none;"> 
<div id="visualization" style="width: 800px; height: 400px;"></div> 
</body> 
</html> 

用于获取nbsamples和样本代码:

echo '<script type="text/javascript">'; 
echo 'var samples = new Array("', join($ydata,'","'), '");'; 
echo 'var nbsamples = new Array("', join($nbsamples,'","'), '");'; 
echo '</script>'; 

回答

0

试试这个创建数组:

var samptable = []; 
samptable.push(nbsamples); 
samptable.push(samples); 

然后,因为它似乎是你的阵列的所有数据,请确保将* opt_firstRowIsData *选项指定为true(默认为false):

var data = google.visualization.arrayToDataTable(samptable, true); 

你可能想也验证nbsamples样本是有效的阵列由他们登录到控制台:

console.log(nbsamples); 
console.log(samples); 

对于这是有效的,他们应该在每次出现的一行数据(相同数量的项目),例如:

[5, 4, 10] 
[1, 3, 3] 
+0

您好!这么晚才回复很抱歉!我已经尝试了你的方法,并且它的工作正在进行中。现在它实际上向我展示了一个错误,而不是什么都没有。这就是说,即使数据是数字,“轴#0的数据列不能是字符串类型”! 我将把我用来获得上述问题中的两个数组的代码。 此外控制台没有显示数组,只是说它们没有被定义,即使我可以看到它们,如果我尝试在alert()中输出它们。 – Patokun