2012-12-30 3 views
1

하이 차트를 사용하여 일부 센서 데이터를 표시해야합니다. PHP 프레임 워크로 YII를 사용하고 있습니다. 나는 (3) 내가 밀리 초 부분 에게 필요한 타임 스탬프로 MySQL (v5.6에)의 시간을 저장하고 나는 거의 내 데이터의 두 번째 또는 두highcharts 라이브 업데이트 및 YII 프레임 워크

내 컨트롤러에 있기 때문에 사용 출력으로 저를주고 싶어 ["2012-12-01 15:00:00.070",45] 하지만이 점은 내 차트에 표시되지 않으며 ajax 요청은 한 번만 수행됩니다. "var series = chart.series [0]"레벨의 방화 광구에서 오류가 발생합니다. 나는 그렇지 않습니다. 문제가 내 하이 차트 코드 또는 시간 형식인지 확인하십시오 포인트를받은 후 내 코드에서 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:[] 
     }] 

    }); 

}); 
+0

"Firebug로 오류가 발생했습니다"... 실제 오류 메시지는 무엇입니까? 현재 문제는'chart' 변수가 그 범위에서 보이지 않는다는 것입니다. 'function requestData()'를'$ (document) .ready (function() {}) '블록으로 옮겨서'chart'에 접근 할 수 있도록하십시오. – DCoder

+0

안녕하세요! 정말 고마워. 너는 나를 구해 줬어. 지금은 방화범에 모든 요청을 볼 수는 없지만이 이미지에 표시된 것처럼 여전히 표시되지는 않습니다. http://i45.tinypic.com/2rhwbpk.png 정상적으로 내 데이터베이스의 업데이트, 요청은 항상 같은 지점을 가져 와서 그것을 표시하고 내 차트의 중심에 도착하지만, 내 경우에는 그것은 디스플레이없이 많은 지점이있는 것처럼 보입니다. 미리 감사드립니다. – Ben

답변

0

데이터 x는 밀리 초 단위의 JS 타임 스탬프 여야하며, PHP에서 데이터를 구문 분석하고 Date.UTC() 함수를 사용할 수도 있습니다.