Как исправить ошибку Highcharts # 13 на графике? когда я уже вставляю DOMContentLoaded - PullRequest
1 голос
/ 09 мая 2019

Я уже перехожу по этой [ссылке]: Как я могу исправить ошибку Highcharts # 13? , но все еще есть ошибка на моей старшей диаграмме.Я хочу сделать живой чарт, это мой первый раз, когда я делаю чарт в реальном времени и использую хай-чарт. Может кто-нибудь помочь мне решить эту проблему?

Это мои данныеPLLive.php

<?php

header("Content-type: text/json");

$servername = "....0";
$username = "...s";
$password = "....";
$dbname = "...n";

$conn = mysqli_connect($servername, $username, $password, $dbname);
$query = mysqli_query($conn,   ("SELECT a.`JAM`, AVG(a.PacketLoss) AVG
FROM (
SELECT `JAM`,`RNC`,`IPPATH_PM` AS PHB,`VS_IPPM_FORWORD_DROPMEANS` AS PacketLoss, `VSIPPMRttMeans` AS Latency, 'IPPM'
FROM `rnc_ippm_meas`
WHERE JAM=(SELECT MAX(JAM) FROM `rnc_ippm_meas`) AND `IPPATH_PM` LIKE '%AF31%'
UNION
SELECT `JAM`,`RNC`,`IPPOOL_PM`,`VSIPPOOLIPPMForwardDrop-Means`,`VSIPPOOLIPPMRttMeans`, 'IPPOOLPM'
FROM `rnc_ippool_ippm_meas` 
WHERE JAM=(SELECT MAX(JAM) FROM `rnc_ippool_ippm_meas`) AND `IPPOOL_PM` LIKE '%AF31%') a
GROUP BY a.`JAM`
LIMIT 10000 "));

if (!$query) {
    printf("Error: %s\n", mysqli_error($conn));
    exit();
}

while ($row = mysqli_fetch_assoc($query)) {            
    $value = $row['AVG'];

    $x = time() * 1000;
    $y = $value;

    $arr = array($x, $y);
    echo json_encode($arr);         
}

?>

это выглядит как json

[1557373542000,"0.019680205406590504"]

тогда это мой HTML-код

<script>
        var chart;
        function requestData() {
            $.ajax({
                url: 'Controller/dataPLLive.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(point, true, shift);

                    // call it again after one second
                    setTimeout(requestData, 1000);    
                },
                cache: false
            });
        }
        document.addEventListener('DOMContentLoaded', function() {

            chart = Highcharts.chart('loss_live', {
                chart: {
                    type: '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: []
                }]
            });        
        });
    </script>

и я следую https://www.highcharts.com/docs/working-with-data/live-data, чтобы создать живой график.

это что-то не так с моим кодом?надеюсь, кто-нибудь поможет мне, спасибо, кстати

1 Ответ

1 голос
/ 09 мая 2019

Код не показывает, где находится div loss_live, но я предполагаю, что это действительно перед JS-частью.

JSON должен быть похож на [1557373542000,0.019680205406590504]. Нет двойной кавычки "на значение.

Измените эту строку в коде с

$y = $value;

до

$y = floatval($value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...