首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用AJAX PHP显示数据

使用AJAX PHP显示数据
EN

Stack Overflow用户
提问于 2018-02-20 14:25:47
回答 2查看 329关注 0票数 0

程序流程: 1.页面加载后,图表将显示所有分店的总销售额。2.当您从下拉按钮中选择一个分支时,图表显示的数据是该特定分支的总销售额。

我的问题是,当我点击一个特定的分支时,数据根本不会显示出来。

有关详细信息,请参阅屏幕截图和代码。

屏幕截图:Screenshot of the page when it loads Screenshot of the page when I choose a branch

数据的PHP代码:

代码语言:javascript
运行
复制
<div class="report-header">
    <h5 class="report-title">Total Yearly Sales</h5>
        <div class="branch-report">
            <select class="form-control" id="t-yearly">
                <option value="">Branch</option>
                <?php
                    require_once "connect.php";

                    $sql = "SELECT id,branch FROM tblLocation";
                    $result = mysqli_query($conn,$sql);

                    while ($row = mysqli_fetch_array($result)) {
                     echo "<option value='".$row['id']."'>".$row['branch']."</option>";
                     }
                    ?>
                </select>
            </div>
        </div>

        <div id="t-yearly-sales" style="height: 80%;"></div>
            <?php
                include "connect.php";

                $sql = "SELECT year, SUM(sales) AS sales FROM tblSales GROUP BY year";
                $result = mysqli_query($conn, $sql);

                $chart = '';
                while ($row = mysqli_fetch_array($result)){
                    $chart .= "{year:'".$row["year"]."', sales:".$row["sales"]."},";
                }                       
            ?>
            <script>
                new Morris.Bar({
                  element: 't-yearly-sales',
                  data: [<?php echo $chart; ?>],
                  xkey: 'year',
                  ykeys: ['sales'],
                  labels: ['Total Sales'],
                  hideHover: 'auto'
                });
            </script>

AJAX代码:

代码语言:javascript
运行
复制
//Total Yearly Sales
$("#t-yearly").change(function(){
    var branch = $(this).val();
    $.ajax ({
        url:"fetch_yearly_sales.php",
        method: "POST",
        data: {branch:branch},
        success: function(branch_data){
             new Morris.Bar({
                element: 't-yearly-sales',
                data: [branch_data],
                xkey: 'year',
                ykeys: ['sales'],
                labels: ['Total Sales'],
                hideHover: 'auto'
             });
             console.log(branch);
        }
    });
});

Fetch_Yearly_Sales.php代码:

代码语言:javascript
运行
复制
   <?php 
require "connect.php";


$data = mysqli_real_escape_string($conn,$_POST['branch']);


if($data == ""){
    $output = "";
    $sql = "SELECT branch_id, year, SUM(sales) AS sales FROM tblSales GROUP BY year";
    $result = mysqli_query($conn, $sql);

    while ($row = mysqli_fetch_array($result)) {
        $chart .= "{year:'".$row["year"]."', sales:".$row["sales"]."},";
    }
    ob_clean();
    echo $output;
}
else{
    $output = "";
    $sql = "SELECT branch_id, year, SUM(sales) AS sales FROM tblSales WHERE branch_id='".$data."' GROUP BY year";
    $result = mysqli_query($conn, $sql);

    while ($row = mysqli_fetch_array($result)) {
        $chart .= "{year:'".$row["year"]."', sales:".$row["sales"]."},";
    }
    ob_clean();
    echo $output;
}
?>
EN

回答 2

Stack Overflow用户

发布于 2018-02-20 14:32:55

最后一个逗号无效。你真的应该考虑使用json_encode。

代码语言:javascript
运行
复制
while ($row = mysqli_fetch_assoc($result)) {
    $chart .= "{year:'".$row["year"]."', sales:".$row["sales"]."},";
}
echo $output;

此外,您也没有打印任何内容:

代码语言:javascript
运行
复制
$output = "";
echo $output;

但是您可以使用$chart .= "";来预置数据。

json_encode示例:

代码语言:javascript
运行
复制
$arr = array();
while ($row = mysqli_fetch_assoc($result)) {
    $arr[] = $row;
}

echo json_encode( $arr );

整个ajax示例:

代码语言:javascript
运行
复制
require "connect.php";


$data = mysqli_real_escape_string($conn,$_POST['branch']);


if($data == ""){
    $sql = "SELECT year, SUM(sales) AS sales FROM tblSales GROUP BY year";
    $result = mysqli_query($conn, $sql);

    $arr = array();
    while ($row = mysqli_fetch_assoc($result)) {
        $arr[] = $row;
    }

    echo json_encode( $arr );
}
else{
    $sql = "SELECT year, SUM(sales) AS sales FROM tblSales WHERE branch_id='".$data."' GROUP BY year";
    $result = mysqli_query($conn, $sql);

    $arr = array();
    while ($row = mysqli_fetch_assoc($result)) {
        $arr[] = $row;
    }

    echo json_encode( $arr );
}
票数 0
EN

Stack Overflow用户

发布于 2018-02-20 14:44:13

您可以在PHP中尝试此操作

代码语言:javascript
运行
复制
if($data == ""){
$sql = "SELECT branch_id, year, SUM(sales) AS sales FROM tblSales GROUP BY year";
 $result = mysqli_query($conn, $sql);
 while ($row = mysqli_fetch_assoc($result)) {
   $chart = '{year:'.$row["year"].', sales:'.$row["sales"].'},';
 } 
 echo $chart; 
   } else {
  $sql = "SELECT branch_id, year, SUM(sales) AS sales FROM tblSales WHERE branch_id='".$data."' GROUP BY year";
$result = mysqli_query($conn, $sql);

while ($row = mysqli_fetch_array($result)) {
    $chart = '{year:'.$row["year"].', sales:'.$row["sales"].'}';
}
echo $chart;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48879126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档