0

ブラウザの各タブに異なる投稿データを保存する必要があります。同じページの新しいインスタンスを開くと、データは両方の間で共有されません。

私の問題:

Web サイトのコンテンツを制御する CMS を構築しています。しかし、同じページ (多くのタブ) のいくつかのインスタンスを開きます。そのため、CMS で作成したニュースを検索するための検索フォームがあります。ニュース項目を開くと、前のページ (ニュース リスト) に戻るキャンセルボタンがあります。

問題は、ニュース リストにページネーションとフィルター フォームがあることです。たとえば、「john doe」などの用語で検索して 5 ページに進み、ニュース項目を開くことができます。キャンセルすると、現在、フィルターなしで最初のページのニュース リストに戻ります。

私の解決策

history.back()ニュース フォームを送信して [戻る/キャンセル] ボタンをクリックできるので、使用したくありません。では、今の形に戻します、何がいけないのか。

私の 2 番目のアイデアは、ニュース リスト$_SESSIONに送信された を保存し$_POST、戻るボタンで に送信して、セッションからデータ/news/list/recovery-sessionを回復することです。$_POSTしかし、これには問題があります。2 つのタブを開いて 2 つの検索を行うと、最後のセッションしか保存されません。

あなたのソリューション:

まあ、私はそれを機能させるために PHP と JS を使用できます。私にできることのアイデアを提案できます。COOKIES での作業について考えていますが、タブではなくドメインで共有されていると思います。何が問題なのですか。

誰か?

4

2 に答える 2

1

一意の ID を生成し、フォームまたは送信される隠し要素に添付します。その一意の ID を Cookie またはセッション変数に保存します。提出時に両者を比較してください。

2 番目のタブが新しい​​ ID を生成した場合、最初のタブは true と評価されません。

于 2012-04-21T02:15:17.557 に答える
0

主な問題は、戻るページの状態と、ニュース一覧ページに戻るときに検索語を保持する必要があることですこれを実現する方法は多数ありますが、簡単な方法の 1 つは、このデータをクエリ文字列にエンコードすることです。

たとえば、検索用語が「john doe」で、5 ページ目にいると仮定すると、そのデータをニュース ページに渡します。

 news.php?returnSearchTerm=john+doe&returnPage=5& ....

ニュース ページが作成されたら、キャンセル リンクをフォーマットして、正しいパラメーターを使用してリスト ページに戻ることができます。

 news_list.php?search=john+doe&page=5
于 2012-04-21T02:25:32.817 に答える