我正在开发一个网络应用来跟踪最近的费用。我希望用户能够选择4个不同的时间段来显示不同的数据。当用户首次登陆页面时,默认情况下会显示“整体”数据。当用户选择范围时,我想使用ajax调用来获取数据范围并更改mysql查询。我对ajax的体验很低,我很好奇如何做到这一点。
这是我的HTML(在PHP中回应):
echo "<section class='range-container'>" .
"<ul class='overview-range'>" .
"<li data-range='overall'>Overall</li>" .
"<li data-range='$currentYear'>Year</li>" .
"<li data-range='$currentMonth'>Month</li>" .
"<li data-range='$currentDay'>Day</li>" .
"</ul>" .
"</section>";
include $_SERVER['DOCUMENT_ROOT'] . '/ajax/overview.php';
overview.php文件:对于此示例,我在查询中只有DAY(日期)选项。
<?php
if ($_POST['range']) {
$currentTime = $_POST['range'];
} else {
$currentTime = '0';
}
//Overview Query
$sqloverview = $db->prepare('SELECT SUM(amount), trans_type
FROM transactions
WHERE (amount > 0 AND DAY(date) = :currentTime) OR
amount > 0
GROUP BY trans_type
ORDER BY trans_type DESC');
$sqloverview->execute(array(':currentTime' => sanitizeString($currentTime)));
$overviewRows = $sqloverview->num_rows;
?>
jQuery文件:
$('.overview-range li').click(function() {
var range = $(this).attr('data-range');
$.ajax({
type: 'POST',
url: '/ajax/overview.php',
data: { range: range },
error: function() { alert("Unable to process this request."); },
success: function() {
alert('It was successful');
}
});
});
这是进行此过程的正确方法吗?或者除了ajax之外还有更好的方法吗?任何帮助将不胜感激!