質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

3767閲覧

検索ページで検索条件をURL以外に保存する方法

msx2

総合スコア174

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1グッド

0クリップ

投稿2018/05/24 02:17

Webアプリケーションで検索結果一覧から詳細を表示し、詳細ページから検索結果に戻るという処理があります。

この検索結果に戻る処理についての質問です。

検索条件はgetで送信してURLに含んでいるのでブラウザの戻るで戻れば検索結果の続きが表示されますが、「一覧に戻る」みたいなリンクから戻る場合は予めURLに含めておく必要があります。

もちろんこの処理は前のページから検索条件を送信させるなどして実現できているものの少し面倒です。

もう少しお手軽に実現する方法はないでしょうか?

xenbeat👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

一瞬セッションかなとおもったんですが、詳細を別ウィンドウなりモーダルで表示すれば済む話では?
いらなくなったら閉じるだけです。
モーダルで処理する場合はajaxでデータを受け取ることになると思いますので
クロスドメインだとちょっとめんどうかもしれません。

投稿2018/05/24 02:36

yambejp

総合スコア114839

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

msx2

2018/05/24 10:20

検索結果を残しておけば解決しますね! この方法ありだと思います。
guest

0

お手軽かどうかは分かりませんが、セッションを使うと良いです。
もちろんどこかでその検索条件を保持するセッションを破棄する必要はありますが。

  • 検索フォーム自体から送信された情報をセッションに$_POSTをほぼそのまま保存する
  • 検索条件のWhere句についてはセッションから取り出して作るようにする

です。
「検索フォーム自体から送信」はGETでもPOSTでも良いですが、
GETであってもセッションで持っておけばクエリストリングなしに詳細ページから一覧ページに戻って来た際に
セッションに検索条件があれば検索条件つきのURLにリダイレクトさせるような仕組みが可能かと(ただし無限ループにならないような配慮が必要)

投稿2018/05/24 02:23

編集2018/05/24 05:33
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

msx2

2018/05/24 02:32

ありがとうございます。 なるほど、getの場合はURL自体をセッションに持っておいてリダイレクトしてしまうと。 無限ループにならないようにする配慮がすぐには思いつかないのですがどういう処理になるのでしょうか?
m.ts10806

2018/05/24 02:38

一番簡単なのはコントローラー的なphpを挟む方法です。 詳細ページ コントローラ用PHPにリンクで遷移 ↓ 切り替え用PHPでセッション有無を判断し、クエリストリングをつけたURLを生成し送信 ただ、これだと戻り先URLが一覧ページのものではない・・・というので気になるのでしたら 一覧へのリンクをセッションから読み出して生成するのもありですね。
msx2

2018/05/24 02:47

戻り先を別ページにしてしまう方法ですね。 これだとわかりやすくてよさそうです。 ありがとうございます!!
m.ts10806

2018/05/24 02:56

いずれにしてもセッションの有無とその解析、そこからURLの生成は変わらないので詳細ページでのリンク生成時に解析用からURLを生成するユーザ関数作ってリンクにくっつけるだけの方が分かりやすいかもしれません。
msx2

2018/05/24 03:12

現状もそういう感じでURLを生成していますが、セッションから取り出す方がシンプルに実現できそうなのでやってみます。
guest

0

一般的にはセッションを使います。

投稿2018/05/24 02:22

xenbeat

総合スコア4258

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

msx2

2018/05/24 02:25

ありがとうございます。 セッションはほとんど使ってこなかったので試してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問