2012-04-21 10 views
0

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

私の問題

私は私のウェブサイトのコンテンツを制御するためのCMSを構築しています。しかし、私は同じページ(いくつかのタブ)のいくつかのインスタンスを開きます。だから私はのニュースをCMSで作成した検索フォームを持っています。ニュースアイテムを開くと、のキャンセルボタンが表示され、前のページ(ニュースリスト)に戻ります。

ニュースリストにはページ区切りとフィルタ形式があります。たとえば、「john doe」のような用語で検索し、5ページに進み、ニュース項目を開くことができます。私がキャンセルすると、現在、フィルターなしで最初のページにニュースリストに戻ります。

マイソリューション

まあ、私はニュースのフォームを送信し、バック/キャンセルボタンをクリックした可能性があるためhistory.back()を使用する必要はありません。だから、私は現在のフォームに戻って、間違っています。

私の第二の考えはその意志の回復セッションから$_POSTデータ、ニュースのリストと戻るボタンに送ら$_POST$_SESSION/news/list/recovery-sessionに私を送って格納することです。しかし、問題があります:2つのタブを開いて2回検索すると、最後のセッションだけが保存されます。

あなたのソリューション

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

誰か?

答えて

1

一意のIDを生成し、送信するフォームまたは隠し要素に添付します。クッキーまたはセッション変数にその一意のIDを保存します。提出時に2つを比較する。

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

0

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

例として、検索用語が「john doe」で、5ページ目の場合、そのデータをニュースページに渡します。ニュースのページが作成されると

は、あなたが正しいパラメータでリストページに戻ります送信するために、あなたのキャンセルのリンクをフォーマットすることができます。

news_list.php?search=john+doe&page=5 
関連する問題