Моррис. js Гистограмма в php? - PullRequest
0 голосов
/ 04 марта 2020

Я использую графики Морриса. js для отображения моих MySQL данных. К сожалению, графики вообще не видны. Я следовал простому учебнику, но ничего не произошло Что я делаю не так в коде? Я предполагаю, что формат data в коде Morris.Bar должен отличаться. Какой должен быть формат?

<?php

$connect = mysqli_connect("localhost", "host", "", "_data");
$query = "SELECT * FROM Datas";
$result = mysqli_query($connect, $query);
$chart_data = '';

while($row = mysqli_fetch_array($result))
{
    $chart_data .= "{ ID:'".$row["ID"]."', Name:".$row["Name"].", Wrongs:".$row["Wrongs"].", Rights:".$row["Rights"].", Percentage:".$row["Percentage"].", Age:".$row["Age"]."}, ";
}
$chart_data = substr($chart_data, 0);
?>

<!DOCTYPE html>
<html>
 <head>
  <title>Webslesson Tutorial | How to use Morris.js chart with PHP & Mysql</title>
  <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css">
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>

 </head>
 <body>
  <br /><br />
  <div class="container" style="width:900px;">
   <h2 align="center">MySQL</h2>
   <h3 align="center">Data</h3>   
   <br /><br />
   <div id="chart"></div>
  </div>
 </body>
</html>


    <script>
Morris.Bar({
  element: 'chart',
  data:[<?php echo $chart_data; ?>],
  xkey: 'ID',
  ykeys: ['Wrongs', 'Rights'],
  labels: ['Wrongs', 'Rights'],
});
    </script>

1 Ответ

0 голосов
/ 05 марта 2020

Я нашел это, все, что мне нужно было добавить, - это функция из одной строки перед вызовом Morris.Bar Функция заключается в проверке готовности документа перед продолжением:

<script>
$(document).ready(function () { 
Morris.Bar({
  element: 'chart',
  data:[<?php echo $chart_data; ?>],
  xkey: 'ID',
  ykeys: ['Wrongs', 'Rights'],
  labels: ['Wrongs', 'Rights'],
});
});
</script>
...