2013-07-03 2 views
0

Я уже некоторое время пытаюсь получить диаграммы на диаграмме для некоторых данных, возвращаемых php. Я сделал много поисков и ничего не работает. Я могу написать php для доставки данных, однако это должно быть, но как вы его получите, чтобы динамически нарисовать его?Highcharts и php для динамической диаграммы

Я могу доставить его как: [[ "1372875867", "44,8782806"], [ "1372875885", "46,2020226"]] или [[1372876686,44.0655823], [1372876693,43.3360596], и т.д.]

но как я могу получить данные с выхода php в пример dyname, который они отображают ?????

!DOCTYPE HTML> 
    <html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <title>Highstock Example</title> 

    <script type="text/javascript" 
    src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
    <script type="text/javascript"> 
    $(function() { 

Highcharts.setOptions({ 
    global : { 
     useUTC : false 
    } 
}); 

// Create the chart 
window.chart = new Highcharts.StockChart({ 
    chart : { 
     renderTo : 'container', 
     events : { 
      load : function() { 

       // set up the updating of the chart eachsecond 
       var series = this.series[0]; 
       setInterval(function() { 
        var x = (new Date()).getTime(), 
        y = Math.round(Math.random() * 100); 
        series.addPoint([x, y], true, true); 
       }, 1000); 
      } 
     } 
    }, 

    rangeSelector: { 
     buttons: [{ 
      count: 1, 
      type: 'minute', 
      text: '1M' 
     }, { 
      count: 5, 
      type: 'minute', 
      text: '5M' 
     }, { 
      type: 'all', 
      text: 'All' 
     }], 
     inputEnabled: false, 
     selected: 0 
    }, 

    title : { 
     text : 'Live random data' 
    }, 

    exporting: { 
     enabled: false 
    }, 

    series : [{ 
     name : 'Random data', 
     data : (function() { 
      // generate an array of random data 
      var data = [], time = (new Date()).getTime(), i; 

      for(i = -999; i <= 0; i++) { 
       data.push([ 
        time + i * 1000, 
        Math.round(Math.random() * 100) 
       ]); 
      } 
      return data; 
     })() 
    }] 
     }); 

    }); 

    </script> 
</head> 
<body> 
    <script src="../../js/highstock.js"></script> 
    <script src="../../js/modules/exporting.js"></script> 

    <div id="container" style="height: 500px; min-width: 500px"></div> 
</body> 
    </html> 

мой текущий РНР:

<?php 
    // include("$_SERVER[DOCUMENT_ROOT]/config/config.php"); 
    include("adodb5/adodb.inc.php"); 
    $connection = new COM("ADODB.Connection") or die("Cannot start ADO"); 
    $result_set = $connection->Execute(" 
      SELECT tag, TIME, value 
      FROM picomp 
      WHERE TIME >= '*-3m' AND tag = 'xxx:xx_xxx.xxx' 
      "); 

    $result_count = 0; 
    // $labels = array(); 
    while (!$result_set->EOF) { 
$pidate = date("U", strtotime($result_set->fields[1])); 
if ($result_count <> 0){ 
print ","; 
}else{ 
print "["; 
} 
    print "[".$pidate.",".$result_set->fields[2]."]"; 
    //  array_push("{$result_set->fields[2]}"); 
    $result_count = $result_count +1; 
    $result_set->MoveNext(); 
    // echo "testing"; 
    } 
    print "];"; 

ответ

0

Вы можете использовать HighchartsPHP, который является оболочкой для Highcharts, которая в основном позволяет писать весь код JS в PHP. Это очень полезно и довольно просто в использовании.

HighchartsPHP on GitHub

+0

Я знаю, что это можно сделать без highchartsphp. Я надеялся, что кто-то скажет мне, как изменить их пример, чтобы вызвать программу php, которая передает данные на нее. – klmbear

0

Ваша временная метка должна быть умножена на 1000, и оба значения должны быть числами.

Пожалуйста, знакомый с душацией, как подготовить JSON, потому что вы печатаете только «как JSON», но это не так.

Посмотрите на http://php.net/manual/en/function.json-encode.php, где представлены некоторые примеры.

+0

Вопрос: как связать php с html вверху? – klmbear

+0

Взгляните на пример http://docs.highcharts.com/#preprocessing-data-from-a-database –

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