検索画面から別の画面へ飛んでから戻ったときに検索条件をセッションから復元したい
08 Feb 2017やりたいこと
検索画面から更新確認画面へ飛んだあと、検索画面へ戻るときにさっき検索した条件を復元したい
検索条件がGETならそのGETパラメータを更新画面へ渡して戻るときはそのパラメータで再検索をかければよい
POSTであっても、その条件を戻るようにPOSTで更新画面へ渡して、戻るときに同じ条件で返せば問題ない。
ここではセッションで実装する場合を考えてみる。
基本的には検索条件(または場合によっては検索結果)の変数をセッションに保持するだけ
セッションのライフサイクルはこんな感じか。
保存タイミング
- 更新確認画面への遷移時
使用タイミング
- 戻るボタン経由で検索・更新画面を表示したとき(専用のパラメータが必要)
削除タイミング
- 戻るボタン経由以外で検索・更新画面を表示したとき(専用のパラメータがないとき)
- ⇒と考えたが、複数タブを開いている場合を考慮すると一律削除すると他のタブのセッションまで削除されてしまい困る。
- そもそもセッションにはタイムアウトが設定されているので、明示的に削除しなくても肥大化し続けることはない。
専用パラメータを作るのには一意になりそうなパラメータを元に作るhashがよさそう。
$functionName = "AAA"; //機能名とか
$loginId = "BBB"; //ログインユーザIDとか
$md5 = md5($functionName . $loginId . time());
これなら同じ画面で複数の検索条件を複数のタブで開いていたりしても、それぞれ正しく「戻る」が正しく動く。