2011-08-01 11 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

をどうやったのかについては、以下のANSWER参照してください。 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スクリプトでここで私は誰にも同じ質問を持っている場合にはそれをやった方法です私は次のようにしました:

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のを使用してオブジェクトに変換し、文字列として返している場合(「(」+応答+「)」)

関連する問題