fsk33 2023-05-05 21:08 采纳率: 73.5%
浏览 60
已结题

PHP下拉框选择筛选显示数据,页面刷新或其它页面重新跳转进来时保持筛选条件的问题

做了一个按条件筛选显示数据库列表的PHP页面,选择下拉框中条件后,现在点按钮后能进行筛选显示,但是刷新页面或再从其它页面转入进来时,筛选就失效了,如何才能将筛选显示保持不变(就是在刷新或其它页面转入进来时保持筛选条件),直到选下拉框首行点“筛选”按钮后再取消筛选条件。
这是我现在的代码
以下是刷新当前页面的数据库连接代码,$condition和$condition1是两个条件筛选变量。

$condition = " 1=1 ";//注意,前面有个空格
if(isset($_GET['shaixuan'])){
    if($_GET['shaixuan']!='3'){
        $condition.=" AND 标识='".$_GET['shaixuan']."'";
}}
$condition1 = " 1=1 ";//注意,前面有个空格
if(isset($_GET['shaixuan1'])){
    if($_GET['shaixuan1']!='3'){
        $condition1.=" AND 诊断意见2='".$_GET['shaixuan1'] . "'";
}}
$query_rsdb = "SELECT * FROM dengji where 检查日期='$today' AND $condition AND $condition1";

以下是两个下拉框筛选框和按钮的代码:


<form id="filter-form" action="listc.php" method="GET" enctype="multipart/form-data" name="form1">
<select name="shaixuan" style="width:50%;height:20px;font-size: 15px" id="shaixuan">
<option value="3">-报告状态-</option>
<option value="0" >已提交</option>
<option value="2" >未报告</option>
</select>
<select name="shaixuan1" style="width:50%;height:20px;font-size: 15px" id="shaixuan1" >
<option value=3>-医疗机构-</option>
<?php
$sql= "select name from hospital";//sql语句
$result = mysql_query($sql, $db_conn);//执行sql语句
while($row = mysql_fetch_array($result)) {
$name = $row['name'];
$template = $row['name'];
echo "<option value='$template' data-name='$name'>$template</option>";
}?>
</select>
</form>

以下是javascript代码:

<script language="javascript">
 $('#filter-form').on('submit',function(event){
        event.preventDefault();
        var url = "http://127.0.0.1/listc.php?";
        var shaixuan = 'shaixuan='+$('#shaixuan').val();
        var shaixuan1 = 'shaixuan1='+$('#shaixuan1').val();
        url += shaixuan + '&' + shaixuan1;
        window.location.href = url;
    });
</script>
  • 写回答

3条回答 默认 最新

  • CF2301_77400554X 2023-05-05 21:39
    关注

    引用chatgpt部分指引作答:
    要实现在刷新或者跳转页面时保持筛选条件,可以考虑将选中的条件存储在Session或Cookie中,然后在加载页面时从Session或Cookie中读取条件并应用到查询语句中。

    以下是使用Session实现保持筛选条件的示例代码:

    <?php
    session_start();
    
    $condition = " 1=1 ";
    if(isset($_GET['shaixuan'])){
        if($_GET['shaixuan']!='3'){
            $condition.=" AND 标识='".$_GET['shaixuan']."'";
            $_SESSION['shaixuan'] = $_GET['shaixuan']; // 将筛选条件保存在Session中
        } else {
            $_SESSION['shaixuan'] = null; // 清空Session中保存的筛选条件
        }
    } else {
        if(isset($_SESSION['shaixuan'])){
            $condition.=" AND 标识='".$_SESSION['shaixuan']."'";
        }
    }
    
    $condition1 = " 1=1 ";
    if(isset($_GET['shaixuan1'])){
        if($_GET['shaixuan1']!='3'){
            $condition1.=" AND 诊断意见2='".$_GET['shaixuan1'] . "'";
            $_SESSION['shaixuan1'] = $_GET['shaixuan1']; // 将筛选条件保存在Session中
        } else {
            $_SESSION['shaixuan1'] = null; // 清空Session中保存的筛选条件
        }
    } else {
        if(isset($_SESSION['shaixuan1'])){
            $condition1.=" AND 诊断意见2='".$_SESSION['shaixuan1'] . "'";
        }
    }
    
    $query_rsdb = "SELECT * FROM dengji where 检查日期='$today' AND $condition AND $condition1";
    
    // 其他代码略...
    ?>
    
    <form id="filter-form" method="GET" enctype="multipart/form-data" name="form1">
    <select name="shaixuan" style="width:50%;height:20px;font-size: 15px" id="shaixuan">
    <option value="3">-报告状态-</option>
    <option value="0" <?php if(isset($_SESSION['shaixuan']) && $_SESSION['shaixuan'] == '0') echo 'selected'; ?>>已提交</option>
    <option value="2" <?php if(isset($_SESSION['shaixuan']) && $_SESSION['shaixuan'] == '2') echo 'selected'; ?>>未报告</option>
    </select>
    <select name="shaixuan1" style="width:50%;height:20px;font-size: 15px" id="shaixuan1" >
    <option value=3>-医疗机构-</option>
    <?php
    $sql= "select name from hospital";//sql语句
    $result = mysql_query($sql, $db_conn);//执行sql语句
    while($row = mysql_fetch_array($result)) {
    $name = $row['name'];
    $template = $row['name'];
    echo "<option value='$template' data-name='$name' ".(isset($_SESSION['shaixuan1']) && $_SESSION['shaixuan1'] == $template ? 'selected' : '').">$template</option>";
    }?>
    </select>
    <button type="submit" name="submit">筛选</button>
    </form>
    
    <script language="javascript">
     $('#filter-form').on('submit',function(event){
            event.preventDefault();
            var url = "http://127.0.0.1/filter.php?" + $('#filter-form').serialize(); // 获取筛选条件并拼接到URL中
            window.location.href = url; // 跳转页面到新的URL
    
    // 其他代码略...
    </script>
    
    
    

    在上述代码中,当用户选择了筛选条件并点击筛选按钮时,会将筛选条件存储在Session中,并将筛选条件拼接到URL中,然后跳转页面到新的URL。在加载新页面时,会从Session中读取保存的筛选条件,并将其应用到查询语句中。这样就能够实现在刷新或者跳转页面时保持筛选条件的效果。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月6日
  • 已采纳回答 5月6日
  • 修改了问题 5月5日
  • 创建了问题 5月5日