2013-06-19 3 views
0

Я избегаю javascript какое-то время, но вам нужно использовать его для диаграммы google, которую я использую. Мой оригинальный код выглядит следующим образом:Javascript FOR цикл внутри массива

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]],); 
     ]);"; 

Этот код не работает. Я не понимаю, как использовать document.write для вывода 7 строк, которые мне нужны для репликации вышеуказанного кода.

+1

Почему бы вам не использовать PHP для этой итерации? – andlrc

+0

что @NULL сказал. эхом от javascript от php, как будто это сумасшествие, человек. – sgroves

+0

Google диаграммы отражают javascript в php. Я просто использую формат. –

ответ

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); 
"; 
+0

+1, но должно быть 'count <= 7' как в ответе @ ikishore – sgroves

+0

Спасибо @ikishsore –

+0

PERFECT !! Спасибо за быстрые ответы. Сначала не работал, но я добавил <=. Благодарю. –

Смежные вопросы