2011-08-01 25 views
10

我正在嘗試從JSON數據添加一系列高位圖。 JSON的有日期和y的值:將系列添加到來自JSON的高位圖

{Date.UTC(2011,8,1): 47, Date.UTC(2011,8,2): 78} 

以及JavaScript函數我現在有,這增加了該系列,但日期似乎不工作,方法是:

function requestData() { 
$.ajax({ 
    url: 'chartData.php', 
    success: function(items) { 

     var series = { 
      id: 'series', 
      name: 'JSON Data', 
      data: [] 
      } 

     $.each(items, function(itemNo, item) { 
      series.data.push(item); 
     }); 

     chart.addSeries(series); 

    }, 
    cache: false 
}); 
} 

誰能幫助我完成此查詢以獲得圖表工作?先謝謝您的幫助!

編輯:我解決了這個 - 見下面的答案我怎麼沒IT

+0

我要指出,這是一次它插入到數據陣列系列應該如何看:[Date.UTC(2011,8,1),47],[Date.UTC(2011,8,2),78]' – dvanderb

回答

16

我想通了這一點。以下是我的情況下,任何人這樣做是有同樣的問題:

在我的腳本生成的JSON數據,我做了以下內容:

header('Content-type: text/json'); 

    //Placeholder - random data for now 
    $x1 = "2011-8-1"; 
    $y1 = rand(0, 100); 

    $x2 = "2011-8-2"; 
    $y2 = rand(0, 100); 

    //Generate this array from database data 
    $arr = array($x1 => $y1, $x2 => $y2); 

    echo json_encode($arr); 

然後,在AJAX腳本,將系列圖表中,我做了以下內容:

function requestData() { 
$.ajax({ 
    url: 'chartData.php', 
    success: function(json) { 

     var series = { 
      id: 'series', 
      name: 'JSON Data', 
      data: [] 
      } 

     $.each(json, function(date,value) { 
      xval = date.split("-"); 
      x = Date.UTC(xval[0], xval[1] - 1, xval[2]); 
      series.data.push([ 
       x, 
       value 
      ]); 
     }); 

     chart.addSeries(series); 

    }, 
    cache: false 
}); 
} 
1

在從項目的例子我的工作,現在,我是從這樣的數組評價系列數據。也許這是欺騙,但我至少得到它的工作:)

var xAxisCat = new Array(); 
var hSeries = new Array(); 
for (var datevote in contestantObject.contestants[cObj].votes) 
{ 
    xAxisCat.push(datevote); 
    hSeries.push(contestantObject.contestants[cObj].votes[datevote]); 
} 
var setSeries = "["+hSeries+"]"; 

,然後在該系列創作我評價,而不是創建數組:

series: [{ 
     name: contestantObject.contestants[cObj].name, 
     data: eval(setSeries) 
     }] 
0

檢查響應(JSON數據)通過具有數據類型作爲對象的ajax。因爲highcharts會起作用,所以響應是作爲對象的數據類型。

如果它返回的字符串,然後,它使用eval(「(」 +響應+「)」)轉換爲對象