Đây là yêu cầu đầu tiên của tôi ở đây và tôi đã đọc nhiều bài đăng có liên quan khác về vấn đề tương tự này, nhưng tôi vẫn gặp khó khăn và khá nhiều vào trí thông minh của mình về điều này ... Vì vậy, bất kỳ trợ giúp được nhiều đánh giá cao!Sự cố loạt dữ liệu Highcharts với ajax/json và PHP
Tôi có đối tượng Highcharts sau trên Page1.php và tôi đang sử dụng AJAX để lấy dữ liệu từ Page2.php khi tải trang cũng như khi tùy chọn thả xuống được thay đổi.
(cắt ngắn cho dễ đọc):
$(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 có sau gửi lại 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);
}
trở json của tôi trông như thế này:
{"name":"Item1","data":"[Date.UTC(2011,11,08), 4 ],"}
{"name":"Item1","data":"[Date.UTC(2011,11,08), 2 ],"}
Khi biểu đồ của tôi tải, nó sẽ điền vào tên 135 Series (?!?!?!) Ở phía dưới và không xuất hiện để hiển thị các điểm trên biểu đồ đường kẻ.
Nếu tôi loại bỏ các dấu ngoặc kép và mã cứng kết quả vào mảng series, nó hoạt động tốt (mặc dù tôi nhận thấy ví dụ không xuất hiện để có một dấu phẩy giữa các đối tượng.
THANK YOU cho tất cả sự giúp đỡ ... đặc biệt là nhanh chóng trả lời! ;-)
Tôi đã phát hiện ra rằng $ của tôi.mỗi phần tạo 135 hoặc "Chuỗi" vì có nhiều ký tự trong chuỗi phản hồi của tôi. Vậy bằng cách nào đó $ .each đang tạo một đối tượng dữ liệu MỚI cho mỗi ký tự trong chuỗi. Tôi có nên phân tích cú pháp JSON bằng cách nào đó không? Tôi đã sẵn sàng để định dạng đầu ra của tôi trong PHP và đặt nó trong một biến phiên! – gtr1971