ハイチャートを使用していくつかのセンサーデータを表示する必要があり、PHPフレームワークとしてYIIを使用しています。時間をタイムスタンプ(3)としてmysql(v5.6)に保存します。ミリ秒の小数部が必要です。ほとんどのデータが1秒または2秒であるため、これを使用します。
私のコントローラーは出力として私を与えます
["2012-12-01 15:00:00.070",45]
が、このポイントは私のチャートに表示されていません、そしてajaxリクエストは一度だけ行われます私は "var series = chart.series [0]、"Idon'のレベルでfirebugでエラーを受け取ります問題が私のハイチャートコードにあるのか、時間形式にあるのかわからない。ポイントを受け取った後、コード内でDateparseを使用する方法もわからない。助けてください!
function requestData() {
$.ajax ({
type:"get" ,
url: "<?php echo CController::createUrl('beam/GetSensorsDataLive') ?>",
data: {"beamId" : "<?php echo $modelBeam['poutre_id'] ?>" },
dataType: "json",
success: function(response,point) {
var series = chart.series[0], //// error here
shift = series.data.length > 20;// shift if the series is longer than 20
chart.series[0].addPoint( point,true, false); // add the point
setTimeout(requestData, 1000); // call it again after one second
},
cache: false
});
}
$(document).ready(function() {
var chart;
chart = new Highcharts.Chart({
chart: {
renderTo: 'graph',
type: 'spline',
events: {
load: requestData
}
},
xAxis: {
type: 'datetime',
},
tooltip: {
formatter: function() {
return '<b>'+ this.series.name +'</b><br/>'+
Highcharts.dateFormat('%H:%M:%S:%m', this.x) +'<br/>'+
Highcharts.numberFormat(this.y, 2);
}
},
series: [{
name: 'Live Data From sensor <?php echo $modelBeam['poutre_id'] ;?> ',
data:[]
}]
});
});