ユーザーが定義できる複数のグラフを含むページを作成しています。
グラフの詳細が変更されると、サーバーへのAjax呼び出しを介して保存され、グラフを再作成する必要があります。
ブラウザに戻るJSONを生成して、サーバー側でPHPでグラフを作成しようとしています。
これまでのところ、私の問題は、サーバーからjsonデータを取得したらグラフをレンダリングすることです。
問題は、jsonに系列データが含まれていることのようです。
返されるJSONは次のようになります。
{"chart":{ "type":["column"]},
"credits":false,
"legend":{"enabled":false},
"title":{"text":"Turnover by Product","align":"left","y":7,
"style":{"fontSize":"10px"}},
"xAxis":{"title":{"text":"Total Sales"}},
"series":[
{"name":"BA","data":[22375004.21]},
{"name":"FR","data":[82542490.9]},
{"name":"GA","data":[531139.77]},
{"name":"MS","data":[112142]},
{"name":"ON","data":[23464497.44]},
{"name":"PO","data":[74623237.35]},
{"name":"TO","data":[25845184.81]},
{"name":"VG","data":[51496496.25]},
{"name":"WM","data":[6849331.4]}]}
}
私が試してみると:
var cgraphdata = $.ajax({
url: "/graphs/data/format/json",
global: false,
type: "POST",
dataType: "json",
data: {type:graphtypeID},
async: false,
success: function(data) {
}
}).responseText; // json returned in cgraphdata
var rgResult = JSON.parse(cgraphdata); // convert to javascript object
// currentGraph = id of container div for current graph
rgResult.chart.renderTo = currentGraph; // set render target
newGraph = new Highcharts.Chart(rgResult); // create chart
これにより、Highchartsエラー14が発生します。データを除外すると、タイトルと軸が記載された空白のグラフが表示されます。
これは、グラフの作成後にデータを個別にロードする必要があることを意味しますか(上の最後の行)?
編集:各データ系列に渡される値が数値であることを確認しました-エラー14は、テキストがデータ値として渡されることを示唆しています。
リチャード