2013-06-11 61 views
0

嘿傢伙我無法將我的數據加載到highstock圖表中。Highstock json的數據沒有顯示

我json.php調用示例MySQL數據庫,看起來是這樣的:

$result = mysql_query("SELECT UNIX_TIMESTAMP(date)*1000 AS timestamp,value from sample") or die('Could not query'); 

if(mysql_num_rows($result)){ 
    echo 'Test'; 

    $first = true; 
    $row=mysql_fetch_assoc($result); 
    while($row=mysql_fetch_row($result)){ 

     if($first) { 
      $first = false; 
     } else { 
      echo ','; 
     } 
     $json_str = json_encode($row, JSON_NUMERIC_CHECK); 
     echo $json_str; 
    } 
    if(array_key_exists('callback', $_GET)){ 
    $callback = $_GET['callback']; 
    echo $callback. '('.$json_str.');'; 
    } 
} else { 
    echo '[]'; 
} 

mysql_close($db); 

我爲index.htm調用Json.php是從樣品highstock模板我只是改變了的getJSON來與我的參考相匹配。這是代碼。任何幫助將不勝感激,謝謝。

<!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.8.2/jquery.min.js"></script> 
     <script type="text/javascript"> 
$(function() { 
    $.getJSON('json.php', function(data) { 

     // Create the chart 
     $('#container').highcharts('StockChart', { 


      rangeSelector : { 
       selected : 1 
      }, 

      title : { 
       text : 'Test' 
      }, 

      series : [{ 
       name : 'Test', 
       data : data, 
       marker : { 
        enabled : true, 
        radius : 3 
       }, 
       shadow : true, 
       tooltip : { 
        valueDecimals : 2 
       } 
      }] 
     }); 
    }); 
}); 
     </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> 

另外,我的JSON被解析以這種方式:

試驗[1370899026000,10],[1370899026000,4],[1368177426000,11],[1370899026000,12],[1370899026000 ,13],[1370899026000,11],[1370899026000,13],[1370899026000,11],[1370899026000,13],[1370899026000,9],[1370899026000,14],[1370899026000,12],[1370899026000,10 ],[1370899026000,15],[1370899026000,12],[1378826226000,7],[1370899026000,9],[1370899026000,11],[1370899026000,7],[1370899026000,3],[1370899026000,6] [1370899026000,0],[1370899026000,11],[1370899026000,5],[1370899026000,9],[1370899026000,7],[1370899026000,8],[1370899026000,8],[1370899026000,9],[1370899026000 ,13],[13 70899026000,11],[1370899026000,10],[1370899026000,13],[1370899026000,12],[1370899026000,12],[1370899026000,11],[1370899026000,13],[1370899026000,10],[1370899026000, 8],[1370899026000,15],[1370899026000,13],[1370899026000,12],[1370899026000,14],[1370899026000,9],[1370899026000,9],[1370899026000,12],[1370899026000,13] [1370899026000,4],[1370899026000,4],[1370899026000,4],[1370899026000,13],[1370899026000,5],[1370899026000,10],[1370899026000,4],[1370899026000,10],[ 1370899026000,22],[1370899026000,9],[1370899026000,5],[1370899026000,9],[1370899026000,10],[1370899026000,5],[1370899026000,7],[1370899026000,10],[1370899026000, 5],[1370899026000,7],[1370899026000,9],[1370899026000,9],[1370899026000,10],[1370899026000,6],[1370899026000,6],[1370899026000,6],[1370899026000,12] [1370899026000,7],[1370899026000,12],[1370899026000,8],[1370899026000,13],[1370899026000,12],[1370899026000,9],[1370899026000,7],[1370899026000,7],[ 1370899026000,9],[1370899026000,12],[1370899026000,13],[1370899026000,9],[137 0899026000,10],[1370899026000,4],[1370899026000,11],[1370899026000,12],[1370899026000,13],[1370899026000,11],[1370899026000,13],[1370899026000,11],[1370899026000, 13],[1370899026000,9],[1370899026000,14],[1370899026000,12],[1370899026000,10],[1370899026000,15],[1370899026000,12],[1370899026000,7],[1370899026000,9] [1370899026000,11],[1370899026000,7],[1370899026000,3],[1370899026000,6],[1370899026000,0],[1370899026000,11],[1370899026000,5],[1370899026000,9],[ 1370899026000,7],[1370899026000,8],[1370899026000,8],[1370899026000,9],[1370899026000,13],[1370899026000,11],[1370899026000,10],[1370899026000,13],[1370899026000, 12],[1370899026000,12],[1370899026000,11],[1370899026000,13],[1370899026000,10],[1370899026000,8],[1370899026000,15],[1370899026000,13],[1370899026000,12] [1370899026000,14],[1370899026000,9],[1370899026000,9],[1370899026000,12],[1370899026000,13],[1370899026000,4],[1370899026000,4],[1370899026000,4],[ 1370899026000,13],[1370899026000,5],[1370899026000,10],[1370899026000,4] [1370899026000,10],[1370899026000,22],[1370899026000,9],[1370899026000,5],[1370899026000,9],[1370899026000,10],[1370899026000,5],[1370899026000,7]

+0

究竟是你想怎麼辦?你目前的解決方案有什麼問題?請澄清你的問題。 – pascalhein

+1

爲了安全和性能的原因,您應該從mysql_ *函數切換到mysqli_ *或PDO –

+2

您的問題是'echo'Test''行使您的輸出無效JSON。該圖表不會顯示您加載的JSON無效。 – likeitlikeit

回答

0
+0

嗨洛倫佐,我試圖用括號括起數據,但它仍然沒有顯示。我檢查了一下,顯然有人說,將這些值轉換爲整數將有所幫助,但這也不起作用。 – user2475658

0

請大家看看http://docs.highcharts.com/#preprocessing-data-from-a-database,並採取看看很簡單的例子,與json_encode:

tmp = array(); 

$tmp[] = array('A',5); 
$tmp[] = array('B',6); 
$tmp[] = array('C',1); 
$tmp[] = array('D',2); 
$rows = array(); 

for($i=0; $i<count($tmp); $i++) 
{ 
    $row['name'] = $tmp[$i][0]; 
    $row['data'] = array($tmp[$i][1]); 
    array_push($rows,$row); 
} 

print json_encode($rows); 

Highcharts:

$(document).ready(function() { 
      var options = { 
       chart: { 
        renderTo: 'container', 
        type: 'column' 
         }, 
       series: [{ 
        name: 'Browser share', 
        data: [] 
       }] 
      } 

      $.getJSON("datavotecolum.php", function(json) { 
      console.log(json); 
       options.series = json; 
       chart = new Highcharts.Chart(options,function(chart){ 

       console.log(chart.series); 
       }); 
      }); 



     });