将数组传递给flot

时间:2015-01-15 07:57:58

标签: php flot

我一直试图用flot制作一个图形图,并且遇到了一个问题。我认为问题在于使用带有flot的php变量的方式除此之外图表不是显示所以我一定做错了。下面是图表代码:

<!DOCTYPE html>     
<html>    
<head>    
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   <title>Flot Examples</title>
   <link href="layout.css" rel="stylesheet" type="text/css">
   <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
   <script language="javascript" type="text/javascript" src="./flot/jquery.js"></script>
   <script language="javascript" type="text/javascript" src="./flot/jquery.flot.js"></script>
   <script language="javascript" type="text/javascript" src="./flot/jquery.flot.categories.js"></script>
</head>

<body>

<?php 

//CONNECTING TO THE SERVER
   $servername = "XXX";
   $username = "YYY";
   $password = "ZZZ";
   conn = new mysqli($servername, $username, $password);

   $sql = "SELECT NAME, AGE FROM pro_db";
   $result = $conn->query($sql);
   $wt=array();

   if ($result->num_rows > 0) {

   while($row = $result->fetch_assoc()) {
  //storing the values in the array
  $wt[]=$row;//is this the right way
  }
} else {
   echo "0 results";
}

?>
  <div id="placeholder" style="width:600px;height:300px;"></div>

  <script type="text/javascript">
  $(function () {
//accessing the array
    var data = <?php echo $wt; ?>; 

    $.plot($("#placeholder"), [data], {
    series: {
        bars: {
            show: true,
            barWidth: 0.6,
            align: "center" }
    },
    xaxis: {
        mode: "categories",
        tickLength: 0
    }
  });
 });
 </script>

</body>
</html>``

1 个答案:

答案 0 :(得分:0)

这是我做的完全正常的例子。如果某些东西不起作用 - 那么数据会出现一些错误。首先尝试var_dump $wt数组的样子;

$data = [
    ['Andrew', 31],
    ['Helen', 29],
    ['Dasha', 24],
    ['Denis', 23]
];

?>

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div id="canvas" style="width: 600px; height: 400px;"></div>
    <script src="bower_components/jquery/dist/jquery.min.js"></script>
    <script src="bower_components/flot/jquery.flot.js"></script>
    <script src="bower_components/flot/jquery.flot.categories.js"></script>
    <script>
        var data = <?php echo json_encode($data) ?>;
        $("#canvas").plot([data], {
            series: {
                bars: {
                    show: true,
                    barWidth: 0.6,
                    align: "center"
                }
            },
            xaxis: {
                mode: "categories",
                tickLength: 0
            }
        });
    </script>
</body>
</html>