You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

删除PHP数据表行后如何返回原页面并保留日期筛选状态

解决删除后保留日期筛选状态的问题

问题根源

删除操作完成后跳转回packages.php时,仅传递了info=delete提示参数,未携带之前的日期筛选条件,导致页面重置为无筛选状态。

解决步骤

  • 捕获当前页面的日期筛选参数(假设参数名为date,请根据实际页面参数名调整)
  • 在跳转URL中附加该日期参数,确保返回页面能读取并复用筛选条件
  • 修复原代码的SQL注入风险(直接拼接用户输入存在安全隐患)

修改后的删除逻辑代码

if(isset($_REQUEST['delete'])){
    // 安全获取ID,避免SQL注入
    $id = mysqli_real_escape_string($conn, $_REQUEST['id']);
    // 获取日期筛选参数(如果有)
    $filterDate = isset($_REQUEST['date']) ? $_REQUEST['date'] : '';
    
    // 使用预处理语句执行删除,彻底避免SQL注入
    $sql = "DELETE FROM package_post WHERE id = ?";
    $stmt = mysqli_prepare($conn, $sql);
    mysqli_stmt_bind_param($stmt, "i", $id);
    
    if(mysqli_stmt_execute($stmt)){
        // 构建跳转URL,携带提示信息和日期筛选参数
        $redirectUrl = 'packages.php?info=delete';
        if(!empty($filterDate)){
            $redirectUrl .= '&date=' . urlencode($filterDate);
        }
        header("Location: " . $redirectUrl);
        exit; // 跳转后终止脚本执行
    } else{
        echo "ERROR: 执行删除失败 - " . mysqli_error($conn);
    } 
    mysqli_stmt_close($stmt);
    mysqli_close($conn);
}

补充:packages.php页面需配合处理

在packages.php中,读取date参数并应用到数据查询中,同时在日期筛选控件中回显该参数:

// 获取日期筛选参数
$currentDate = isset($_GET['date']) ? $_GET['date'] : '';

// 查询数据时加入日期条件
$sql = "SELECT * FROM package_post";
if(!empty($currentDate)){
    $sql .= " WHERE DATE(your_date_column) = '" . mysqli_real_escape_string($conn, $currentDate) . "'";
}
$result = mysqli_query($conn, $sql);

在日期筛选表单中回显参数:

<input type="date" name="date" value="<?php echo htmlspecialchars($currentDate); ?>">

内容的提问来源于stack exchange,提问作者ر ع

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 17:27:25