Chart.js не работает - Uncaught RefernceError: - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь отобразить в виде диаграммы некоторые данные о временных рядах с помощью chart.js. Данные извлекаются из psql, преобразуются в json и отправляются в качестве аргумента функции js для отображения диаграммы.

Данные получены в js должным образом, но есть ошибки «Uncaught RefernceError» о вызове функции js в HTML.

EDIT

Это поднимает эти ошибки:

Uncaught RefernceError: dspChrt is not defined @ line
 dspChrt(WData);
    </script>          
        </body>
    </html>

Вот мой код:

JS

<script>
    var Device_Data;
    var rssi, batt;
    var rssiArray = [];
    var battArray = [];
    var N = 12;
    for (i = 0; i < N; i++) {
        rssiArray.push(0);
        battArray.push(0); }

function dspChrt(Device_Data) { 

    console.log(Device_Data[0].rssi);
    console.log(Device_Data[1].battery_voltage_mv);
    rssi = Device_Data[0].rssi;
    batt = Device_Data[1].battery_voltage_mv;
    rssiArray.shift();
    rssiArray.push(rssi);
    battArray.shift();
    battArray.push(batt);

    var ctx = document.getElementById('myChart').getContext('2d');
    var myChart = new Chart(ctx, {
    type: 'line',
    data: {
    labels: [new Date()],
    datasets: [{
    label: 'rssi',
    data: rssiArray, 
    backgroundColor: "rgba(153,255,51,0.4)"
        }, {
    label: 'Battery_Voltage',
    data: battArray,
    backgroundColor: "rgba(255,153,0,0.4)"
    }]
    }
    options: {
    scales: {
        xAxes: [{
            type: 'time',
            time: {
                unit: 'hour',
            }
        }]
    }
}


}); 
}

 //var myVar = setInterval(dspChrt, 60000);
</script>

HTML / PHP

<code> <?php
    require("Connection.php");
    $stmt = $conn->prepare("Select date_time, battery_voltage_mv FROM measuring_device_statuses LIMIT 24");
    $stmt->execute();

    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
    $WData = $stmt->fetchAll();

    /*
    echo "<pre>".print_r($WData, true)."
"; умереть(); * / ?> var WData = <? php print_r (json_encode ($ WData));?>; //console.log(WData); dspChrt (WDATA);

1 Ответ

0 голосов
/ 08 ноября 2018

Когда я посмотрел ваш код, я обнаружил, что labels настроены, однако формат вашей метки времени никогда не будет соответствовать этим меткам. В результате показ 0 имеет смысл.

Не уверен, что ты хочешь. Может быть, что-то вроде это ? Посмотрите на код, который они написали, вы обнаружите, что они не настроены labels.

На вашем месте я мог бы использовать точечный график вместо showLines=true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...