У меня есть система, пытающаяся отобразить график счета во времени, используя flot js. Проблема, с которой я столкнулся, заключается в том, что график фактически не отображает какие-либо линии. Я перевел время на UTC и умножил на 1000, как предлагалось в других постах, но безрезультатно. Кто-нибудь знает, что я делаю не так?
PHP:
public function liveGraphAjax()
{
$query = "SELECT
time as time,
COUNT( id ) as count
FROM table
WHERE HOUR( TIME ) = HOUR( CURRENT_TIME ) -1
GROUP BY DATE_FORMAT(`time`, '%H:%i')";
$result = DB::select($query);
if(isset($result))
{
$temp = array();
foreach ($resultas $row )
{
$temp [] = array(
'time' =>strtotime($row->time) * 1000,
'count' =>(int) $row->count,
);
}
}
return Response::json($temp);
}
JS:
var options = {
colors : [$UpdatingChartColors],
xaxis: {
mode: "time",
timeformat:"%hh:%mm"},
series: {
lines: { show: true },
points: { show: true }
},
};
$("button.dataUpdate").click(function ()
{
data = [];
$.plot("#updating-chart", data, options);
function fetchData()
{
function onDataReceived(series)
{
var res = [];
data = [series];
for (var i = 0; i < data[0].length; ++i)
{
res.push([data[0][i].time,data[0][i].count]);
}
console.log(res);
$.plot("#updating-chart", res, options);
}
$.ajax({
url: "liveGraphAjax",
type: "GET",
dataType: "json",
success: onDataReceived
});
}
});
fetchData()
Функция никогда не вызывается, поэтому вы никогда не получите данные.onDataReceived()
функционировать res
Переменная содержит только один ряд данных. Вы должны изменить свой звонок на $.plot("#updating-chart", [res], options);
Других решений пока нет …