0

私はしばらく JavaScript を避けてきましたが、使用している Google チャートに使用する必要があります。私の元のコードは次のようになります...

echo "function drawChart() {
    var data = google.visualization.arrayToDataTable([
      ['Date', 'Machines Total'  ],

      [ '$Day[6]', $Hour_Tot[7].$Min_Tot[7] ], 
      [ '$Day[5]', $Hour_Tot[6].$Min_Tot[6] ], 
      [ '$Day[4]', $Hour_Tot[5].$Min_Tot[5] ],
      [ '$Day[3]', $Hour_Tot[4].$Min_Tot[4] ],
      [ '$Day[2]', $Hour_Tot[3].$Min_Tot[3] ],
      [ '$Day[1]', $Hour_Tot[2].$Min_Tot[2] ],
      [ '$Day[0]', $Hour_Tot[1].$Min_Tot[1] ]

      ]);";

このコードは問題なく動作し、テスト済みです。私が今やろうとしているのは、グラフをより動的にして、ユーザーが数値を入力し、グラフが日数のデータを出力できるようにすることです。したがって、for ループを追加する必要があります。これは私がこれまでに得たものです。

echo "function drawChart() {
    var data = google.visualization.arrayToDataTable([
      ['Date', 'Machine L1'  ],
      for (count = 1, DayNumber = 0; count == 7; ++count, ++DayNumber ) 
  document.write([ '$Day[DayNumber]', $Hour_Tot[count].$Min_Tot[count]],);
       ]);";

このコードは機能しません。上記のコードを複製するために必要な 7 行を出力するために document.write を使用する方法がわかりません。

4

1 に答える 1

1

配列宣言内に for ループを配置しているため、このコードは機能しません。次のことを行う必要があります...

echo "function drawChart() {
var data = google.visualization.arrayToDataTable([
  ['Date', 'Machine L1'  ],";
for ($count = 1, $DayNumber = 0; $count <= 7; ++$count, ++$DayNumber ) {
  echo "  [ '$Day[$DayNumber]', $Hour_Tot[$count].$Min_Tot[$count]],";
}
echo "]);";

または、javascript を使用して処理することもできます。次のようになります。

echo "var arr = [['Date', 'Machine L1']];
  for(var i=1;i<=7;i++) {
    arr.push([{$Day}[i-1], {$Hour_Tot}[i].toString()+{$Min_Tot}[i].toString()]);
  }
  var data = google.visualization.arrayToDataTable(arr);
";
于 2013-06-19T20:12:50.687 に答える