Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите новичку с передачей массива из PHP в JS для Google Chart (https://javascript.ru/forum/misc/54977-pomogite-novichku-s-peredachejj-massiva-iz-php-v-js-dlya-google-chart.html)

savicus 08.04.2015 15:56

Помогите новичку с передачей массива из PHP в JS для Google Chart
 
Доброго дня суток.

Помогите новичку с передачей массива из PHP в JS для Google Chart.

Визуально рабочий код по ссылке:
https://jsfiddle.net/w1mhpz1o/1/

//Вариант 1 - работает, но нужен второй вариант, а на нем тренд не отображается

google.load('visualization', '1', {packages: ['corechart']});
google.setOnLoadCallback(drawTrendlines);

function drawTrendlines() {

//Вариант 1 - работает, но нужен второй вариант, а на нем тренд не отображается   

    datA = [['Дата','Всего'],[01, 15],[2, 128],[03, 146]]; //Вариант 1
//    datA = [['Дата','Всего'],['один', 15],['два', 128],['три', 146]]; //Вариант 2

    var data = new google.visualization.arrayToDataTable(eval(datA));    
    var options = {
        hAxis: {title: 'Time'},
        vAxis: {title: 'Popularity'},
        colors: ['#AB0D06', '#007329'],
        trendlines: {0: {type: 'linear', opacity: .8, visibleInLegend:true, lineWidth:1, labelInLegend: 'тренд'}}
      };

console.log(data);    
    var chart = new google.visualization.AreaChart(document.getElementById('chart_div'));
    chart.draw(data, options);
}

Georrg 13.04.2015 19:24

не совсем понятна проблема. Код по ссылке работает и для того и для другого варианта, что не так?

savicus 14.04.2015 11:46

Здравствуйте!
В первом варианте нет линии тренда!
И всё из-за того, "описания значений" в текстовом формате!!!
Как это обойти - не знаю, судя по всему при расчете тренда, Гугл использует "описания значений" для расчета тренда как расчетную величину изменений.
Можно конечно поставить 1, 2, 3
Но визуально хочется чтобы писалось 2014-01, 2014-02
Как это обойти, не понимаю, думаю - никак... :-E

savicus 14.04.2015 13:54

Всё, всем спасибо!
Решил проблему сам.
Нужно всего лишь

datA = "[['Date','All'],[new Date(2014, 01, 01), 15],[new Date(2014, 02, 01), 40],[new Date(2014, 03, 01), 120]]"; //version 3, all OK

И всё строится нормально.


Часовой пояс GMT +3, время: 03:30.