Я хочу добавить данные в свою линейную диаграмму с помощью ajax или json, теперь я должен перезагрузить всю веб-страницу, чтобы показать свои новые данные на диаграмме. Но я хочу, чтобы показать данные в реальном времени путем добавления точки, как эти ссылки:Добавить динамические данные в линейную диаграмму из базы данных mysql с помощью высокоскоростных диаграмм
www.highcharts.com/studies/live-server.htm
Я пытаюсь получить мои данные из MySQL, чтобы добавить на диаграмме, но ничего JSON произошло. Это мой код в лайв-сервера data.php:
<?php
header("Content-type: text/json");
include_once 'include/connection.php';
$db = new DB_Class();
$query = "select distinct idchip from datatable ";
$result = mysql_query($query);
$rows = array();
$count = 0;
while($row = mysql_fetch_array($result)) {
$SQL1 = "SELECT datetime,temperature FROM `datatable` WHERE idchip=".$row['0']." datetime DESC limit 0,1 ";
$result1 = mysql_query($SQL1);
while ($rows = mysql_fetch_array($result1)) {
$data[] = $rows['1'];
$datatime[] = 'moment('.$rows['0'].').valueOf()';
}
// The x value is the current JavaScript time, which is the Unix time multiplied
// by 1000.
$x = $datatime;
// The y value is a random number
$y = $data;
}
// Create a PHP array and echo it as JSON
$ret = array($x, $y);
echo json_encode($ret);
?>
и это то, что я использовал, чтобы получить данные и показать на графике в моей странице index.php.
var chart; // global
/**
* Request data from the server, add it to the graph and set a timeout to request again
*/
function requestData() {
$.ajax({
url: 'live-server-data.php',
success: function(point) {
var series = chart.series[0],
shift = series.data.length > 20; // shift if the series is longer than 20
// add the point
chart.series[0].addPoint(eval(point), true, shift);
// call it again after one second
setTimeout(requestData, 1000);
},
cache: false
});
}
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
defaultSeriesType: 'spline',
events: {
load: requestData
}
},
title: {
text: 'Live random data'
},
xAxis: {
type: 'datetime',
tickPixelInterval: 150,
maxZoom: 20 * 1000
},
yAxis: {
minPadding: 0.2,
maxPadding: 0.2,
title: {
text: 'Value',
margin: 80
}
},
series: [{
name: 'Random data',
data: []
}]
});
});
Это мой график, который я перегрузить страницу, чтобы получить новые данные прямо сейчас, но я хочу, чтобы добавить новую точку, чтобы наметить для «реального времени»
В функции requestData заменить "график" ссылка на "это". Как выглядит ваша переменная точки (которую вы получаете от ajax)? –