这是我的第一个要求,我已经阅读了与此问题相关的许多其他相关文章,但我仍然陷入困境,几乎无能为力…因此,非常感谢您的帮助!
我在Page1.php上具有以下Highcharts对象,并且正在使用AJAX在页面加载以及下拉选项更改时从Page2.php获取数据。
(为了便于阅读而被截断):
$(document).ready(function() {
var e = document.getElementById("selOption"); //
var domText = e.options[0].text;
var domID = e.options[e.selectedIndex].value;
var options = {
chart: {
renderTo: 'linechart',
type: 'line'
},
title: {
text: 'Title for ' + domText
},
subtitle: {
text: ''
},
xAxis: {
type: 'datetime',
dateTimeLabelFormats: {
month: '%b %e, %Y',
year: '%Y'
}
},
yAxis: {
title: {
text: 'Important Values'
},
reversed: true,
min: 0,
max: 100
},
tooltip: {
formatter: function() {
return ''+ this.series.name +'
'+
Highcharts.dateFormat('%b %e', this.x) +': '+ this.y;
}
},
series: []
};
$.get('Page2.php?domID=' + domID,function(data) {
$.each(data, function(key,value) {
//var series = {};
//series.name.push(value);
//series.data.push([value]);
options.series.push(data);
//alert(data);
});
var linechart = new Highcharts.Chart(options);
});
});
Page2.php具有以下发送回json的信息:
$sqlSelect = "SELECT Item1,Item2,Item3 FROM... ";
$result = mysql_query($sqlSelect);
while ($item = mysql_fetch_assoc($result)) {
$name = $item['Item1'];
$date = str_replace("-",",",$item['Item2']);
$pos = $item['Item3'];
$arr = array("name"=>$name,"data"=>"[Date.UTC(".$date."), ".$pos." ],");
echo json_encode($arr);
}
我的json返回看起来像这样:
{"name":"Item1","data":"[Date.UTC(2011,11,08), 4 ],"}
{"name":"Item1","data":"[Date.UTC(2011,11,08), 2 ],"}
加载图表时,它会在底部填充135系列名称(?!?!?!),并且在折线图中似乎不会显示点。
如果我删除双引号并将结果硬编码到series数组中,则效果很好(尽管我注意到该示例在对象之间似乎没有逗号。
谢谢您的所有帮助…特别是快速的回复!;-)