Ошибка JavaScript при получении данных из эха JSON - PullRequest
1 голос
/ 28 апреля 2019

Я пытаюсь создать свечную диаграмму с объемом.Свечной график работает отлично, проблема с объемом.

Что у меня есть:

imgur image

Что мне нужно:

imgur image

datachart.php -> Отправляет данные JSON.

Мне кажется, что ошибка в $ data [], потому чтоскрипт index.htm не распознает данные тома.

<?php
include '../dbh.php';//It connects to the database

$sql = "SELECT * FROM table ORDER BY date ASC";
$result = $conn->query($sql);

$data = array();
$count = 0;
while ($row = mysqli_fetch_array($result))
{
  $newdate = strtotime($row['date']) * 1000; 
  $data[] = array($newdate, (float)$row['open'], (float)$row['high'], (float)$row['low'], (float)$row['close'], (float)$row['volume']);
  $count++;
}   
echo json_encode($data);
?>

index.htm

$.getJSON('datachart.php', function (data) {

// split the data set into ohlc and volume
var ohlc = [],
    volume = [],
    dataLength = data.length,
    // set the allowed units for data grouping
    groupingUnits = [[
        'week',                         // unit name
        [1]                             // allowed multiples
    ], [
        'month',
        [1, 2, 3, 4, 6]
    ]],

    i = 0;

for (i; i < dataLength; i += 1) {
    ohlc.push([
        data[i][0], // the date
        data[i][1], // open
        data[i][2], // high
        data[i][3], // low
        data[i][4] // close
    ]);

    volume.push([
        data[i][0], // the date
        data[i][5] // the volume
    ]);
}


// create the chart
Highcharts.stockChart('container', {

    rangeSelector: {
        selected: 1
    },

    title: {
        text: 'Exchange Market'
    },

    yAxis: [{
        labels: {
            align: 'right',
            x: -3
        },
        title: {
            text: 'OHLC'
        },
        height: '60%',
        lineWidth: 2,
        resize: {
            enabled: true
        }
    }, {
        labels: {
            align: 'right',
            x: -3
        },
        title: {
            text: 'Volume'
        },
        top: '65%',
        height: '35%',
        offset: 0,
        lineWidth: 2
    }],

    tooltip: {
        split: true
    },

    series: [{
        type: 'candlestick',
        name: 'AAPL',
        data: ohlc,
        dataGrouping: {
            units: groupingUnits
        }
    }, {
        type: 'column',
        name: 'Volume',
        data: volume,
        yAxis: 1,
        dataGrouping: {
            units: groupingUnits
        }
    }]
});
});

Если мы возьмем только эту часть кода index.htm:

volume.push([
    data[i][0], // the date
    data[i][5] // the volume
]);

Если я изменю «5» на 1,2,3 или 4, он рисует график объема.Тогда, почему он не рисует график с «5», если объем находится в позиции 5?

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