HTML/Javascript/JSP/JSTL:如何使用 POST 数据模拟浏览器的后退按钮

HTML/Javascript/JSP/JSTL: How to simulate browsers' back button with POST data?

本文关键字:浏览器 模拟 按钮 数据 何使用 JSP Javascript JSTL HTML POST      更新时间:2023-09-26

我正在使用POST而不是GET来查询数据,因为我有太多的参数并且url看起来不太好。我注意到我的浏览器(Chrome(后退按钮能够返回到上一个POST生成的上一页。

我想添加一个按钮,在必要时使用 HTML/Javascript/JSP/JSTL 或后端 Java 模拟此行为。有什么建议吗?

例:

用户在主页上,使用参数集 S1 执行开机自检。

用户被带到从开机自检加载的新页面,参数集为 S1。用户使用参数集 S2。

用户被带到从开机自检加载的新页面,参数集为 S2。

此时,我希望我的后退按钮将用户带回参数集为 S1 的 POST 生成的页面。我是否必须保存并传递我当前的 POST 参数才能达到此效果,或者有更简单的方法?

通常使用的方法如下:

<!-- in header: ->
<script>
function goBack()
  {
  window.history.back()
  }
</script>
<!-- in body ->
<input type="button" value="Back" onclick="goBack()">

但这不是这样做的最佳方法。通常,如果使用数据库和表单提交,则应将变量保留在会话中,因此,如果您按下按钮,则会再次发布上次使用的变量。

好吧:我解决了这个问题。认为这就是你想要的。第一次轻舐搜索按钮。它设置会话。在第二次搜索中,它将会话重置为第一个搜索词。然后使用第一个搜索词"返回"1步骤。这只适用于 1 回去。又名仅撤消 1 次搜索。根据您的需求进行定制,让我知道这是您想要的。

<?php
session_start();
include("db.php");
if(isset($_POST['searchterm'])) {
    if($_SESSION['oldsearch'] == "") {
        $_SESSION['oldsearch'] = $_POST['searchterm'];
    } else {
    $_SESSION['oldsearch'] = $_POST['oldsearch'];
    }
    $searchterm = $_POST['searchterm'];
} else if (isset($_POST['back1'])) {
    $_SESSION['oldsearch'] = $_POST['back'];
    $searchterm = $_POST['back'];
} else {    
    $_SESSION['oldsearch'] = "";
    $searchterm = "";
}

    if(isset($_POST['searchterm']) || isset($_POST['back1']) ) {
    $query = mysql_query("SELECT * FROM kliendid WHERE name LIKE '%$searchterm%'"); 
    while ($row = mysql_fetch_array($query)) {
        echo "Found from database: ".$row['name']."<br>";
    }
    }

?>
<form name="back" id="back" method="post">
<input type="hidden" name="back" value="<?php echo $_SESSION['oldsearch']; ?>" />
<input type="submit" name="back1" id="back1" value="Back">
</form>
<form name="search" id="search" method="post">
<input type="hidden" name="oldsearch" id="oldsearch" value="<?php echo $_SESSION['oldsearch']; ?>" />
<input type="text" name="searchterm" value="" />
<input type="submit" name="search" id="search" value="Search">
</form>