высокие графики динамических данных от php - PullRequest
0 голосов
/ 28 января 2012

Я пытаюсь построить диаграмму (сплайн), используя данные, которые динамически генерируются из PHP.Библиотека JavaScript, которую я использую для этой цели, - HighCharts.

PHP генерирует массив значений в формате, подобном

array(
      array("1304294461000",69,"1304899261000",28),
      array("1304294431000",3,"1304899161000",32)
)

, который я затем передаю в массив JavaScript с помощью json_encode.Однако когда я выдвигаю эти значения как данные, они, похоже, не работают.

Например, вот пример с соответствующими фрагментами кода, такими как -

 var namesArr = <?php echo json_encode($namesArr); ?>;

 var progressTrendsData = <?php echo json_encode($progressTrendsData); ?>;
 var chart;
 var options = {
     chart: {
         renderTo: 'trendsDiv',
         type: 'spline'
     },
     series: [{
     name: '',
     data: []
     }]
 };

 for(var i=0;i<namesArr.length;i++) {
    options.series.push({
            name: namesArr[i],
            data: progressTrendsData[i]
    });
 }

 chart = new Highcharts.Chart(options); 

Параметры содержат другиесоответствующие данные, необходимые для диаграммы, конечно.Однако единственное, что делает приведенный выше код, - это построение одного значения на дату 1 января, независимо от того, какие текущие данные отправляются.

1 Ответ

0 голосов
/ 29 января 2012

Я бы хотел согласиться с Марком по этому вопросу.Трудно сказать, как именно ваши данные должны выглядеть в итоге.Попробуйте взглянуть на часть загрузки данных в примере данных ajax на старшей диаграмме demo page .

UPDATE:

Попробуйте следующий псевдокод:

var chart;
var options = {
     chart: {
         renderTo: 'trendsDiv',
         type: 'spline'
     },
     series: [{
     name: '',
     data: []
     }]
 };

var seriesInfo=[];
seriesInfo[0]={"name":"Series A","data":[]};
seriesInfo[1]={"name":"Series B","data":[]};

//Loop over the series and populate the data
seriesInfo[0].data.push({x:<insert Series A timestamp>,y:<insert Series A y value>});
seriesInfo[1].data.push({x:<insert Series B timestamp>,y:<insert Series B y value>});

options.series.push(seriesInfo[0]);
options.series.push(seriesInfo[1]);

chart = new Highcharts.Chart(options);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...