jqueryファイルに2つのjson構造化データが埋め込まれています。ドロップダウンリストを使用して、選択値に応じてデータを変更したいと思います。
var json = {
"data": [
{
"cid": "football",
"id": "/en/chelsea_fc",
"topic": "Chelsea F.C.",
"audience": [
{
"userid": "100003914111287",
"information": [
{
"category": "Athlete",
"source": "Didier Drogba"
},
{
"category": "Athlete",
"source": "Frank Lampard"
},
{
"category": "Professional sports team",
"source": "Chelsea Football Club"
},
{
"category": "favorite_teams",
"source": "Chelsea Football Club"
}
]
},
{
"userid": "100003914111287",
"information": [
{
"category": "Athlete",
"source": "Didier Drogba"
},
{
"category": "Athlete",
"source": "Frank Lampard"
},
{
"category": "Professional sports team",
"source": "Chelsea Football Club"
},
{
"category": "favorite_teams",
"source": "Chelsea Football Club"
}
]
}
],
"type": "/soccer/football_team"
},
{
"id": "/en/manchester_united_fc",
"topic": "Manchester United F.C.",
"audience": [
{
"information": [
{
"category": "Athlete",
"source": "Ryan Giggs"
},
{
"category": "Professional sports team",
"source": "Manchester United"
},
{
"category": "favorite_teams",
"source": "Manchester United"
}
],
"userid": "100003921730958"
}
],
"type": "/soccer/football_team"
}
]
};
var json2 = {
"data": [
{
"cid": "Movie",
"id": "/en/MIB",
"topic": "Men In Black",
"audience": [
{
"userid": "100003914111287",
"information": [
{
"category": "Athlete",
"source": "Didier Drogba"
},
{
"category": "Athlete",
"source": "Frank Lampard"
},
{
"category": "Professional sports team",
"source": "Chelsea Football Club"
},
{
"category": "favorite_teams",
"source": "Chelsea Football Club"
}
]
},
{
"userid": "100003914111287",
"information": [
{
"category": "Athlete",
"source": "Didier Drogba"
},
{
"category": "Athlete",
"source": "Frank Lampard"
},
{
"category": "Professional sports team",
"source": "Chelsea Football Club"
},
{
"category": "favorite_teams",
"source": "Chelsea Football Club"
}
]
}
],
"type": "/soccer/football_team"
},
{
"id": "/en/Harry Potter",
"topic": "Harry Potter and the goblet of fire",
"audience": [
{
"information": [
{
"category": "Athlete",
"source": "Ryan Giggs"
},
{
"category": "Professional sports team",
"source": "Manchester United"
},
{
"category": "favorite_teams",
"source": "Manchester United"
}
],
"userid": "100003921730958"
}
],
"type": "/soccer/football_team"
}
]
};
しかし、どういうわけか、データを取り込んでグラフに入力する変数を取得できません。しかし、console.logを使用して値をログアウトすることができます。選択を変更したときに値がキャプチャされますが、データがそれを入力しないことを意味します。
var pts = [];
var str = "";
var data = json.data;
$.each(data, function (i, v) {
pts.push([v.topic, v.audience.length]);
});
$("select").change(function () {
var e = document.getElementById("selection");
str = e.options[e.selectedIndex].value;
if (str == json.data[0].cid) {
data = json.data;
console.log(str);
}
else if (str == json2.data[0].cid) {
data = json2.data;
console.log(str);
}
else
alert("ERROR");
});
//Radialize the colors
Highcharts.getOptions().colors = $.map(Highcharts.getOptions().colors, function (color) {
return {
radialGradient: { cx: 0.5, cy: 0.3, r: 0.7 },
stops: [
[0, color],
[1, Highcharts.Color(color).brighten(-0.3).get('rgb')] // darken
]
};
});
var chart;
$(document).ready(function () {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
title: {
text: 'Facebook like'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage}%</b>',
percentageDecimals: 0
}
,
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
point: {
events: {
click: function (event) {
//var personame =" ";
var id = "10150616324193820";
for (var i = 0; i < jsonFB.user1.length; i++) {
for (var k = 0; k < json.data.length; k++) {
for (var j = 0; j < json.data[k].audience.length; j++) {
if (jsonFB.user1[i].id = json.data[k].audience[j].userid) {
var personname = jsonFB.user1[i].name;
var id = jsonFB.user1[i].id;
}
else {
alert("Error!");
}
}
}
alert("Person who like " + this.name + " are " + personname);
var ans = confirm("Do you want to view this person profile?");
if (ans)
window.location = "http://www.facebook.com/people/@/" + id;
}
}
}
},
showInLegend: true,
dataLabels: {
enabled: true,
color: '#000000',
connectorColor: '#000000',
formatter: function () {
return '<b>' + this.point.name + '</b>: ' + Math.round(this.percentage) + '%';
}
}
}
},
series: [{
type: 'pie',
name: 'Likes',
data: pts
}]
});
});
});
誰かがこれを手伝ってくれる?ありがとう!:D