0

私はphpから取得した2つの配列を1つの2D Javascript配列に入れています。これを使用して Google Chart DataTable を自動入力しようとしていますが、これまでのところ成功していません。私が考えることができる唯一のことは、おそらく配列は ix MxN 次元ですが、関数には NxM 配列が必要ですか?

最初の配列が数値で構成されているため、機能しませんか?

    <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>';
4

1 に答える 1

0

配列を作成するには、代わりにこれを試してください。

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

次に、配列がすべてデータであるように見えるので、*opt_firstRowIsData* オプションを true に指定してください (デフォルトは false):

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

nbsamplessamplesが有効な配列であることをコンソールに記録して確認することもできます。

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

これが有効であるためには、それぞれがデータの行 (同じ数の項目) として表示される必要があります。次に例を示します。

[5, 4, 10]
[1, 3, 3]
于 2012-06-04T04:06:12.573 に答える