PHP-ban grafikon miért nem jelenik meg?
2020-04-09T21:52:06+02:00
2020-04-10T11:05:05+02:00
2022-08-11T19:10:33+02:00
Adrian_98
Sziasztok!
Készítettem egy weboldalt, amely működésének az a lényege, hogy egy grafikonon megjeleníti, hogy egy adatbázishoz melyik nap hány rekord lett hozzáadva, és ennek megfelelően megjeleníti az adatokat egy grafikonon. Csak van egy probléma, valamiért nem akarja megjeleníteni a grafikonon az adatokat. Ha simán csak kiiratom az adatokat a weboldalra, hogy melyik nap hány rekord született (tehát nem adom hozzá a grafikonhoz) úgy működik, és ha kézzel adok meg pár adatot a grafikonhoz, úgy megjeleníti a grafikon. Viszont a kettő együtt nem működik. Valaki esetleg tud ebben segíteni? Ez lenne a kód:

<?php
$dataPoints = array();
$sql = "SELECT `datum` AS `dat`, COUNT(`datum`) AS `num` FROM `e` GROUP BY(`datum`)";
$par = mysqli_query($k,$sql);
while($sor=mysqli_fetch_array($par))
{
array_push($dataPoints, array("x"=> $sor['dat'], "y"=> $sor['num']));
}
$sql = null;
?>
<html>
<head>
<script>
window.onload = function () {

var chart = new CanvasJS.Chart("chartContainer", {
animationEnabled: true,
axisX:{
crosshair: {
enabled: true,
snapToDataPoint: true
}
},
axisY:{
crosshair: {
enabled: true,
snapToDataPoint: true
}
},
toolTip:{
enabled: false
},
data: [{
type: "area",
dataPoints: <?php echo json_encode($dataPoints, JSON_NUMERIC_CHECK); ?>
}]
});
chart.render();

}
</script>
</head>
<body>
<center>
<div id="chartContainer" style="height: 270px; width: 100%;"></div>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
</center>
</body>
</html>
Mutasd a teljes hozzászólást!
A tömböt direktben adatokkal feltöltve működött. Ha a tömbbe dátumot pakolok, akkor az "x" helyett "label" kellett neki. Úgy már azt is "megette"

array_push($dataPoints, array("x"=> $sor['dat'], "y"=> $sor['num']));
helyett

array_push($dataPoints, array("label"=> $sor['dat'], "y"=> $sor['num']));

Így próbáltam:

array_push($dataPoints, array("label" => date("l"), "y" => 4));
Mutasd a teljes hozzászólást!

  • 1.) Amikor PHP-val generálod ki a grafikon adatait (amikor nem működik), akkor nézd meg a generált oldal forrását (böngésző: CTRL+U)!

    2.) Ezt hasonlítsd össze azzal, amikor fixen beírsz adatokat (amikor működik)!

    3.) Ellenőrizd, hogy a PHP-s verzió a megfelelő formában állítja-e elő az adatokat, konkrétan a dataPoints: <?php echo... ?> sor lesz az érdekes!

    4.) Nézegesd a konzolt, hogy nincs-e valami ezzel kapcsolatos  js hibaüzenet / warning!
    Mutasd a teljes hozzászólást!
  • A tömböt direktben adatokkal feltöltve működött. Ha a tömbbe dátumot pakolok, akkor az "x" helyett "label" kellett neki. Úgy már azt is "megette"

    array_push($dataPoints, array("x"=> $sor['dat'], "y"=> $sor['num']));
    helyett

    array_push($dataPoints, array("label"=> $sor['dat'], "y"=> $sor['num']));

    Így próbáltam:

    array_push($dataPoints, array("label" => date("l"), "y" => 4));
    Mutasd a teljes hozzászólást!
  • Köszi, így működik, hogy "x" helyett "label"-t írtam.
    Akkor ez volt a gond, hogy a dátumokkal X tengelyen nem tud mit kezdeni velük.
    Mutasd a teljes hozzászólást!
abcd