2012-07-03 47 views
0

我試圖使用採樣數據創建一些Highstock圖表(Highcharts),但是當我將它運行爲空白頁面時,我得到了所有數據。試圖將多個JSON數據傳遞給Highcharts而沒有成功

這是我的PHP代碼:

<?php 
header("Content-type: text/json"); 
$horas_muertas = array(array(1296518400000,4),array(1296604800000,2),array(1296691200000,3),array(1296777600000,3)); 
$horas_trabajadas = array(array(1296518400000,2),array(1296604800000,3),array(1296691200000,4),array(1296777600000,5)); 
$datos = array(json_encode($horas_muertas),json_encode($horas_trabajadas));  


$datosj = json_encode($datos); 

echo $datosj[0]; 

?> 

正如你可以看到我試着accesing的JSON,這回該做的第一個位置,我敢肯定有什麼地方有錯誤:

[ 

但是,當我使用此代碼的圖表(我刪除了不相關的代碼):

function requestData() { 
      $.ajax({ 
       url: 'data.php', 
       datatype: 'json', 
       success: function(data) {      
        //alert(data);      
        chart.series[0].setData(data[0]); 
        chart.series[1].setData(data[1]); 
       }, 
       cache: false 
      }); 
     } 
$(function() { 
var chart = new Highcharts.StockChart({ 

       chart: { 
        renderTo: 'container', 
        type: 'column', 
         events: { 
         load: requestData 
        } 
       }, 
       series: [{ 
        name: 'Horas Prendidas', 
       data: []}, 
       { 
        name: 'Horas Trabajadas', 
       data: []}] 
      }); 
     });​ 

我得到的只是一個空白的pa ge,當我至少應該得到一張沒有任何數據的圖表時,關於如何解決這個問題的任何想法?非常感謝幫助

回答

0

使用chart.series[0].addPoint(data[0]);而不是chart.series[0].setData(data[0]);

+0

謝謝!儘管如此,我沒有得到任何東西在我的網頁上,我猜這是因爲datos [0]它沒有返回第一個JSON,有沒有辦法像數組一樣訪問第一部分? –

+0

那麼,如果ajax調用返回的JSON比你可以直接嘗試chart.series [0] .setData(data);.如果這不起作用,請嘗試查找javascript頁面上是否存在語法錯誤。當javascript中存在語法錯誤時,大多數情況下圖表頁面都是空白的。 –

+0

奇怪的是,不知何故unicode中的那些非可打印字符中的一個進入了我的代碼,我只在使用十六進制編輯器查看代碼時才注意到它,謝謝! –