【问题标题】:How to fix "Highcharts error #13" on live chart? when i'm already insert DOMContentLoaded如何修复实时图表上的“Highcharts error #13”?当我已经插入 DOMContentLoaded
【发布时间】:2019-05-09 03:48:30
【问题描述】:

我已经关注了这个 [link]:How can I fix Highcharts error #13?,但我的 highchart 上仍然出现错误。我想制作实时图表,这是我第一次制作实时图表并使用图表,有人可以帮我解决这个问题吗?

这是我的dataPLLive.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制作实时图表。

我的代码有问题吗?希望有人帮助我,谢谢顺便说一句

【问题讨论】:

    标签: php ajax charts highcharts


    【解决方案1】:

    代码没有显示 div loss_live 的位置,但我认为它确实在 JS 部分之前。

    JSON 应该类似于 [1557373542000,0.019680205406590504]。值上没有双引号 "。

    在代码中更改这一行

    $y = $value;
    

    $y = floatval($value);
    

    【讨论】:

    • 感谢@Core972 先生的回复,感谢对我的dataPLLive.php 的建议,但我仍然收到错误“highcharts error 3”,是的,js 之前的 div
    • sir @Core972,顺便说一句,json 如何输出实时图表?像这样 [1557388562000,0.15689485657699218] 或 [1557388562000,0.15689485657699218],[15573881212,0.1276177699218]
    • @LutfiMiftahudin,我看不出这两个命题之间的区别,只是第二个命题有 2 个数据点。我错过了什么吗?
    • 对不起,对于 json 输出必须是最后一次数据(我使用 max 来选择最后一次数据)或显示当前日期的所有数据(在当前日期全选),我的英语不好对不起先生
    猜你喜欢
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-08
    • 2017-02-17
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多