0

GET の代わりに POST を使用してデータをクエリしています。これは、パラメーターが多すぎて、URL が見栄えがよくないためです。ブラウザ (Chrome) の [戻る] ボタンで、前の POST によって生成された前のページに戻ることができることに気付きました。

必要に応じて、HTML/Javascript/JSP/JSTL またはバックエンド Java を使用して、この動作をシミュレートするボタンを追加したいと考えています。助言がありますか?

例:

ユーザーはホームページにいて、パラメータ セット S1 で POST を実行します。

ユーザーは、パラメータ セット S1 を使用して POST からロードされた新しいページに移動します。ユーザーは、パラメータ セット S2 を使用して別の POST を実行します。

ユーザーは、パラメータ セット S2 を使用して POST からロードされた新しいページに移動します。

この時点で、戻るボタンを使用して、パラメータ セット S1 を使用した POST の結果のページにユーザーを戻します。この効果を得るには、現在の POST パラメータを保存して渡す必要がありますか、それとももっと簡単な方法がありますか?

4

2 に答える 2

0

まあ:私はそれを回避しました。これがあなたが望むものだと考えてください。検索ボタンを最初にクリックしたとき。セッションを設定します。2 番目の検索では、セッションを最初の検索用語にリセットします。戻るボタンは、最初の検索用語を使用して「戻る」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>
于 2013-10-12T17:35:35.680 に答える