Ich habe versucht, herauszufinden, was scheint, um das Problem mit diesem Code, aber ich kann nicht scheinen, die Lösung noch zu finden. Ich möchte, dass dieses Säulendiagramm jede Sekunde mit den Daten von chartOne.php aktualisiert wird, das Diagramm wird aktualisiert, aber die Daten werden nicht angezeigt.Canvasjs Säulendiagramm Aktualisierung durch Json funktioniert nicht
Hier ist der Code chartOne.php ist:
<?php
include_once("connect.php");
$grabOne = mysqli_query($con, "SELECT * FROM tb_cndts WHERE id='1'") or die(mysql_error());
while($rows = mysqli_fetch_array($grabOne)){
$oneCount = $rows['count'];
}
$grabTwo = mysqli_query($con, "SELECT * FROM tb_cndts WHERE id='2'") or die(mysql_error());
while($rows = mysqli_fetch_array($grabTwo)){
$twoCount = $rows['count'];
}
$grabThree = mysqli_query($con, "SELECT * FROM tb_cndts WHERE id='3'") or die(mysql_error());
while($rows = mysqli_fetch_array($grabThree)){
$threeCount = $rows['count'];
}
echo json_encode(array(
array("id"=>"0","count"=>$oneCount),
array("id"=>"1","count"=>$twoCount),
array("id"=>"2","count"=>$threeCount)
));
Hier ist das Skript:
window.onload = function() {
var dps = [
{label: "Person One", y: 0} ,
{label: "Person Two", y: 0},
{label: "Person Three", y: 0},
];
var chart = new CanvasJS.Chart("chartContainer",{
theme: "theme2",
title:{
text: "Students' Votes"
},
axisY: {
title: ""
},
legend:{
verticalAlign: "top",
horizontalAlign: "centre",
fontSize: 18
},
data : [{
type: "column",
showInLegend: true,
legendMarkerType: "none",
legendText: " ",
indexLabel: "{y}",
dataPoints: dps
}]
});
chart.render();
var updateInterval = 1000;
var updateChart = function() {
$.get("chartOne.php", function(data) {
$.each(data, function(n, val) {
chart.options.data[0].dataPoints[n].y = val.count;
});
}, "json");
chart.render();
};
setInterval(function(){updateChart()}, updateInterval);
}
Daten auf der Seite MySQL ist wie folgt:
id | count
1 | 100
2 | 200
3 | 150
Nach einer zweiten Von der Seitenladung wird das Diagramm in
Ich habe versucht, document.write(); es und die Daten zeigen sich gut. Kann mir jemand helfen? Danke im Voraus.
Das Problem besteht immer noch. Ich glaube, das Problem liegt in der PHP-Abfrage. Da ich es abfragen muss, habe ich die Anzahl in eine Variable geändert. Jetzt, wenn die Variable das Ergebnis ist, ist eine Ganzzahl die Daten angezeigt, aber wenn ich die Variable in das Ergebnis der Abfrage ändern, werden die Daten nicht angezeigt (gleich wie zuvor). –
Das Konsolenprotokoll zeigt, dass die Variable aus der Abfrage eine Zeichenfolge anstelle einer ganzen Zahl ist. –
Ich habe den Fehler behoben. Danke –