Ajax调用改变MySQL SELECT查询

时间:2017-03-18 19:58:38

标签: javascript php jquery mysql ajax

我正在开发一个网络应用来跟踪最近的费用。我希望用户能够选择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之外还有更好的方法吗?任何帮助将不胜感激!

0 个答案:

没有答案