PhP モジュールからデータを動的にフェッチし、それを JSON データとして JavaScript にロードし、このデータを使用して HighCharts を使用して円グラフを生成しようとしています。いくつかの静的データを使用している場合、円グラフは適切に生成されますが、JSON データを解析し、それを Highchart シリーズ オブジェクトへの入力としてフィードしている場合は読み込まれません。これは、ハイチャートへの入力中のデータのフォーマットに関係していると確信していますが、今のところそれを理解することはできません:(だから、あなたたちに連絡するだけだと思います。ここにコードとサンプルを添付しましたphp モジュールによって生成された json 出力を参考にしてください。
PhP モジュールから生成されたサンプル JSON 入力: [{"skill":"html","count":"158"},{"skill":"css","count":"134"}]。この JSON 入力とフィードを HighCharts シリーズ オブジェクトへの入力として解析し、「html」と「css」を円グラフとして表示する円グラフを生成する必要があります。
任意のガイダンスをいただければ幸いです。
ありがとう。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Top Skills Analytics</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script src="highcharts.js"></script>
</head>
<body>
<table>
<tr>
<td colspan="2" align="center"><u><b><font size="4">Top Skills Analysis</font></b></u>
</td>
</tr>
<tr>
<td>
<div id="container" style="height: 500px; width: 500px; margin-bottom: 1em;"></div>
</td>
</tr>
</table>
<script type="text/javascript">
// Creates the HighChart using the dynamically generated data from PhP module
function loadCharts() {
// Parses the JSON data and returns an array of an array
var result = [];
// json from php is like : [{"skill":"html","count":"158"},{"skill":"css","count":"134"}]
$.getJSON('test.php', function (json) {
$.each(json, function (i, entry) {
result.push(entry.skill, entry.count);
});
});
//result = [["html",158],["css",134]]; --> this works
var options1 = {
"series": [{
"name": "Jobs",
"type": "pie",
"sliced": true,
"data": result, // works when populated with static value like [["html",158],["css",134]]
"pointWidth": 15,
"color": "#C6D9E7",
"borderColor": "#8BB6D9",
"shadow": true,
}],
"title": {
"text": "Top Skills Analytics"
},
"legend": {
"layout": "vertical",
"style": {
"left": "auto",
"bottom": "auto",
"right": "auto",
"top": "auto"
}
},
"chart": {
"renderTo": "container"
},
"credits": {
"enabled": false
}
};
var chart1 = new Highcharts.Chart(options1);
}
// Load the charts when the webpage loads for the first time
$(document).ready(function () {
loadCharts();
});
</script>
</body>