javascript - 来自mysql数据库的PHP动态图表数据
问题描述
我刚开始使用 PHP。最近我用 PHP 和谷歌图表创建了一个图表。在图表中,从下拉列表中选择选项后会显示数据,但默认情况下不显示数据。我想显示运行年份(2019 年)的数据。如果不选择任何选项。请帮我解决这个问题.. 在此处输入图像描述
我的图表文件是:
<?php
//index.php
include("database_connection.php");
$query = "SELECT year FROM chart_data GROUP BY year DESC";
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
?>
<div class="panel panel-default">
<div class="panel-heading">
<div class="row">
<div class="col-xl-9 col-sm-9 mb-3">
<h3 class="panel-title"></h3>
</div>
<div class="col-xl-3 col-sm-3 mb-3">
<select name="year" class="form-control" id="year">
<option value="">Select Year</option>
<?php
foreach($result as $row)
{
echo '<option value="'.$row["year"].'">'.$row["year"].'</option>';
}
?>
</select>
</div>
</div>
</div>
<div class="panel-body">
<div id="chart_area" style="width: 1000px; height: 600px;"></div>
</div>
</div>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {packages: ['corechart', 'bar']});
google.charts.setOnLoadCallback();
function load_monthwise_data(year, title)
{
var temp_title = title + ' '+year+'';
$.ajax({
url:"fetch.php",
method:"POST",
data:{year:year},
dataType:"JSON",
success:function(data)
{
drawMonthwiseChart(data, temp_title);
}
});
}
function drawMonthwiseChart(chart_data, chart_main_title)
{
var jsonData = chart_data;
var data = new google.visualization.DataTable();
data.addColumn('string', 'Month');
data.addColumn('number', 'Received');
$.each(jsonData, function(i, jsonData){
var month = jsonData.month;
var profit = parseFloat($.trim(jsonData.profit));
data.addRows([[month, profit]]);
});
var options = {
title:chart_main_title,
hAxis: {
title: "Months"
},
vAxis: {
title: 'Received'
}
};
var chart = new google.visualization.ColumnChart(document.getElementById('chart_area'));
chart.draw(data, options);
}
</script>
<script>
$(document).ready(function(){
$('#year').change(function(){
var year = $(this).val();
if(year != '')
{
load_monthwise_data(year, 'Month Wise Received Data For');
}
});
});
</script>
并获取文件是:
<?php
//fetch.php
include('database_connection.php');
if(isset($_POST["year"]))
{
$query = "
SELECT * FROM chart_data
WHERE year = '".$_POST["year"]."'
ORDER BY id ASC
";
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
foreach($result as $row)
{
$output[] = array(
'month' => $row["month"],
'profit' => floatval($row["profit"])
);
}
echo json_encode($output);
}else
{
$query = "
SELECT * FROM chart_data
WHERE year = '2019'
ORDER BY id ASC
";
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
foreach($result as $row)
{
$output[] = array(
'month' => $row["month"],
'profit' => floatval($row["profit"])
);
}
echo json_encode($output);
}
?>
解决方案
推荐阅读
- python - 如何使带有消息的标签出现几秒钟,然后标签被删除?
- sql - 如何在单独的列中获取 SQL 中分组列的总体摘要?
- python - Tensorflow 2.5.0 和 Gensim 4.0.1 与 numpy 的兼容性
- c++ - C/C++ 从结构数组中删除项目
- ckan - CKAN:提供大文件时如何修复错误 504
- extjs - 如何从 EXTJS 中的委托事件中获取记录?
- python - Django模型减法问题
- php - Elasticsearch 7.13 批量更新 PHP CURL
- swift - 以编程方式呈现 UISearchController
- git - 如何将文件添加到 .gitignore 配置