使用下拉菜单查询数据库并返回结果而不离开页面

时间:2012-09-27 21:29:11

标签: php jquery mysql html

我有一个包含一些PHP的页面,如下所示:

<table>
    <thead>
        <tr>
            <th class="wheniwant">Date</th>
            <th class="wheniwant">Income Amount</th>
            <th class="wheniwant">Expense Amount</th>
        </tr>
    </thead>

    <?php
    //DB CONNECTION

    $varDatePaid = ""; $varIncomePaid =""; $varExpensePaid = "";

    $sql = mysql_query( 
        "
            SELECT DATE_FORMAT(`date_paid`, '%Y-%m') `date_paid`,
            SUM(CASE WHEN `categoryType` = 'Income' THEN `amount_paid` END) `IncomeAmount`,
            SUM(CASE WHEN `categoryType` = 'Expense' THEN `amount_paid` END) `ExpenseAmount`
            FROM `accounting`
            GROUP BY DATE_FORMAT(`date_paid`, '%Y-%m')
        "
     );


    while($row = mysql_fetch_array($sql))
        {
            $varDatePaid = $row['date_paid'];
            $varIncomePaid = $row['IncomeAmount'];
            $varExpensePaid = $row['ExpenseAmount'];                        
    ?>


    <tr>
        <td><?php echo $varDatePaid; ?></td>
        <td><?php echo $varIncomePaid; ?></td>
        <td><?php echo $varExpensePaid; ?></td>
        </tr>

    <?php   

        }
    ?>
</table>

返回如下表格:

Screenshot

我想添加一些内容:

$sql_query = "SELECT id, DATE_FORMAT(`date_paid`, '%Y') AS year FROM accounting GROUP BY year ORDER BY year DESC";


$result = mysql_query($sql_query) or die(mysql_error());
while ($row = mysql_fetch_array($result)){
echo '<option value='. $row['year'] . '>'. $row['year'] . '</option>';

创建某种过滤器以将结果限制为特定年份。如何在不离开页面的情况下执行此操作?

1 个答案:

答案 0 :(得分:0)

好的,所以你想要阅读here上的AJAX。这并不是很困难,大多数情况下,您可以直接从该网站复制代码。或者,根据您拥有的数据量,如果您不想学习新内容,可以在页面加载时加载整个数据集,然后使用JS在填写表单后选择所需的部分。我建议使用AJAX路线。

有人提到了外部PHP脚本的一些内容,我想这是可能的,但我不确定这是怎么回事。我假设您必须在第一页上使用JS来创建一个说明您想要的cookie,然后打开一个新的选项卡或窗口,在其中执行查询并将值存储为cookie或会话变量,然后使用JS在查询完成时关闭该窗口,然后再次使用JS将查询结果放回页面。我认为这样可行,但似乎不是最有效的方法。