0

我有一个包含一些 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>

这将返回一个类似的表:

截屏

然后我想添加一些东西:

$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>';

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

4

1 回答 1

0

好的,所以你会想在这里阅读 AJAX 。这不是很困难,在大多数情况下,您可以直接从该站点复制代码。或者,根据您拥有的数据量以及如果您真的不想学习新东西,您可以在页面加载时加载整个数据集,然后在填写表格后使用 JS 来挑选您想要的部分。我建议使用 AJAX 路由。

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

于 2012-09-28T00:00:27.890 回答