Это мой первый запрос здесь, и я прочитал много других связанных сообщений по этой же проблеме, но я ВСЕ ЕЩЕ застреваю и почти не понимаю этого... Так что любая помощь очень ценится!
У меня есть следующий объект Highcharts на Page1.php, и я использую AJAX для получения данных из Page2.php при загрузке страницы, а также при изменении параметра раскрывающегося списка.
(сокращено для удобства чтения):
$(document).ready(function() {
var e = document.getElementById("selOption"); //<--- This is the dropdown
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 '<b>'+ this.series.name +'</b><br/>'+
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 имен серий (?!?!?!) внизу и не показывает точки на линейном графике.
Если я удалю двойные кавычки и жестко закодирую результат в массив серии, он отлично работает (хотя я заметил, что в примере нет запятой между объектами.
СПАСИБО за всю помощь ... особенно за быстрые ответы! ;-)