Попытка создать диаграмму, подобную этому . Без динамических данных c это работает как шарм. Попытка сделать данные динамическими c с помощью функции ajax -call и setInterval не столь успешна. Я просмотрел много постов и перепробовал несколько вариантов безрезультатно. Мой код, как есть, между <head>
и </head>
:
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$(function () {
$('#powerChart').highcharts({
chart: {
type: 'solidgauge'
},
credits: {
enabled: false
},
exporting: {
enabled: false
},
title: {
text: 'Power'
},
pane: {
startAngle: -90,
endAngle: 90,
background: [{ // Track for Move
outerRadius: '112%',
innerRadius: '88%',
backgroundColor: Highcharts.color(Highcharts.getOptions().colors[0])
.setOpacity(0.3)
.get(),
borderWidth: 0,
shape: 'arc'
}]
},
yAxis: {
min: 0,
max: 1500,
lineWidth: 0,
tickPositions: []
},
plotOptions: {
solidgauge: {
dataLabels: {
enabled: false
},
linecap: 'round',
stickyTracking: false,
rounded: true
}
},
series: [{
name: 'Power',
data: [{
color: Highcharts.getOptions().colors[0],
radius: '112%',
innerRadius: '88%'
}]
}]
});
var chart = $('#powerChart').highcharts();
var pac;
function reqData() {
$.ajax({
type: "GET",
url: "gegevens.php",
dataType: "JSON",
cache: "false",
success: function(data){
pac = data[0].pac,
chart.series[0].update({ data: pac })
}
});
chart.redraw();
};
setInterval(reqData, 5000);
});
</script>
и между <body>
и </body>
:
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/highcharts-more.js"></script>
<script src="https://code.highcharts.com/modules/solid-gauge.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>
<script src="https://code.highcharts.com/modules/export-data.js"></script>
<script src="https://code.highcharts.com/modules/accessibility.js"></script>
<p><div id="powerChart" style="width: 300px; height: 200px"></div></P>
In консоль, я получаю сообщение об ошибке, указывающее на highcharts.sr c. js: 30511, и это говорит: TypeError: undefined is not a function (near '...b.forEach...')
. Я должен сделать что-то не так, но что? Я точно знаю, что мой ajax -звук работает и pac
заполнен числом от data[0].pac
.