首页 > 解决方案 > 如何检索选定年份的数据

问题描述

帮助我如何在下拉列表中发布价值年份,然后它将使用 ajax 加载到 JSON 数据中。请修复我的代码我是一个喜欢学习更多的学生。感谢您为检查我的代码所做的贡献,如果它是错误的。我不熟悉ajax,但我正在尝试。

 <script>

       $(document).ready(function () {

         getGraph();

        function getGraph()
        {
            $.getJSON("bar_graph_query.php", function (result)
            {                
                 var chart = new CanvasJS.Chart("chartBar", {
                            animationEnabled: true,
                            theme: "light2", 
                            title:{
                            text: "Summary Rent Profit"
                          },
                          axisY: {
                            title: "Total (RM)"
                          },
                          data: [{        
                            dataPoints: result,
                      }]
                    });
                    chart.render();
            });
        } 
       $.("#years").onchange(function(){
           getGraph();
       });

      });

    </script>

脚本 ajax 将数据加载到 json (bar_graph_summary.php)

<div class="label">Select Name:</div>
                    <select class="form-control" name="years" id="years" style="width: 120px" >
                    <option value="'">Select Years</option>
                    <?php

                        include('db_conn.php');

                            $query = $conn->query("SELECT YEAR(rent_date) as years FROM rent GROUP BY YEAR(rent_date)");

                            while($row = $query->fetch_assoc())
                            { 
                                echo '<option value="'.$row['years'].'">'.$row['years'].'</option>';
                            }

                    ?> 
                </select>

下拉选择年份 (bar_graph_summary.php)

<?php

    include('db_conn.php');

    $data_points = array(); 

    $years = $_REQUEST['years'];

    $query = mysqli_query($conn, "SELECT MONTHNAME(rent_date) as month, SUM(rent_total)as total FROM rent WHERE YEAR(rent_date)='$years' GROUP BY MONTH(rent_date)"); 

    //$query = mysqli_query($conn, "SELECT MONTHNAME(rent_date) as month, SUM(rent_total)as total FROM rent GROUP BY MONTH(rent_date)");

    while($row = mysqli_fetch_array($query))
    {        
        $point = array("label" => $row['month'] , "y" => $row['total']);

        array_push($data_points, $point);        
    }

    echo json_encode($data_points, JSON_NUMERIC_CHECK);

?>

查询数据 json (bar_graph_query.php)

标签: phpjqueryjsonajaxcanvasjs

解决方案


推荐阅读