私はphpページ(array.php)を持っています。ブラウザでは、array.phpがffの結果を生成します
[{"name":"London","data2":["70","19"]},{"name":"Tokyo","data2":["60","18"]}]
array.phpページ
<?php
//header("Content-type: text/json");
header("Content-type: application/json");
$db = mysql_connect("localhost", "username", "userpasswd");
mysql_select_db("weather",$db);
$query = "SELECT * FROM measures";
$result = mysql_query($query,$db);
while($row = mysql_fetch_array($result))
{
$h = $row["humidity"];
$w = $row["windspeed"];
$t = $row["temperature"];
$c = $row["city"];
$ar1[] = array("name" =>$c,"data2"=>[$h,$t]);
}
echo json_encode($ar1);
?>
jqueryページのコードは
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="./js/highcharts.js"></script>
<script type="text/javascript">
var chart = null; // global
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
defaultSeriesType: 'column',
events: {
load: requestData
}
},
title: {
text: 'Real time data from database'
},
xAxis: {
categories: []
},
yAxis: {
minPadding: 0.2,
maxPadding: 0.2,
title: {
text: 'Value',
margin: 80
}
},
series: []
});
});
/**
* Request data from the server
*/
function requestData() {
$.ajax({
url: 'array.php',
success: function(point) {
$.each(point, function(i,item){
var series_name = item.name;
var series_data = item.data2;
var series = {data: []};
chart.xAxis.categories.push(series_name);
//chart.series.data.push(item.data2);
$('body').append( "Name: " + series_name);
alert(series_data);
});
},
cache: false
});
}
</script>
</head>
<body>
<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
</body>
</html>
ただし、コードは完全ではありません。しかし、エラーが修正されるまで、私は先に進むことができません。htmlコードを実行すると、array.phpからの各データをループしてアラートを出すことにより、アラート機能が適切に機能します。しかし、コメントを外すと
//chart.xAxis.categories.push(series_name); or //chart.series.data.push(item.data2);
その後、アラート機能は機能しなくなります。変数(チャート)を認識していないような気がします。私は前にそれを宣言しました
$(document).ready(function() {
グローバル変数になりますが、そうではないようです。
どうか、本当に助けが必要です。私はこれに何日も取り組んでいますが、成功していません。深く感謝いたします。よろしくお願いします-エマ