2009-06-02 8 views
1

私が作業しているサイトでは、データベースクエリの結果を表示しています。各ページには15件の結果が表示されるため、クエリから45件の結果が返された場合は、3つのページにそれぞれ15件の結果が表示されます。PHP、HTMLなどを使用して複数のページから項目を選択するにはどうすればよいですか?

最初のページで選択したアイテムを覚えている間に、最初のページから任意の数のアイテムを選択し、他のページに切り替えてそれらのページからアイテムを選択できるようにします。 (最終的に、ユーザーがすべての項目を選択すると、Submitボタンをクリックします)。ユーザーが最初のページに戻ると、チェックした項目が選択されたものとして表示されます。私がWeb上で見たページで、ユーザーが最初のページに戻ると、すべてのチェックボックスが再びクリアされます(これは私が望むものではありません)。

これを達成するための最良の方法はありますか?ありがとう。

答えて

6

を運ぶために使用隠された入力は、あなたがどこかに保存する必要のあるいくつかの状態があることを意味します。そこにそれを行うためのさまざまな方法がありますが、それは(データベース内など)(例えばクッキー)

  • は、サーバー上に保管してください

    1. クライアント上で、それを保管してください...これらのいずれかに帰着します

    なPHPやASP.NETなどのプラットフォームが提供する共通の抽象化は、「セッション」の考え方である(ASP.NETのビューステートのように、例えば、非表示フォームフィールド)前後にそれを送ってください。セッション状態の実際の実装は、上記の3つの可能性のいくつかの組み合わせかもしれませんし、おそらく最も簡単なルートを提供します。 PHPでセッション状態を調べることをお勧めします。

  • +1

    +1セッション。選択した項目の配列を作成し、それをSessionに格納することができます。あなたが終わったらそれをクリアすることを忘れないでください。 –

    +0

    オプション3を使用する - 他のオプションは競合状態につながる可能性があります。 – Quentin

    +0

    非常に役に立ちました。ありがとう! – johnnyb10

    1

    多くのことができます。彼らは実際に存在しているが、単に示されていないので、各

  • をクリックの上にAJAXを使用して

    • JavaScriptのクッキーとして保存
    • セッションとして保存「タブ」として各ページを非表示にします。
  • +0

    私はタブのアイデアは好きですが、経験からは数ページ後にはうまく調整できないことがわかりました。 – TheTXI

    +1

    これらはすべてjavascriptを必要とし、正常に縮退しません。 –

    3

    で-間のページの選択を覚えて前のセットからの結果の上に

    <!-- hidden fields --> 
    <input type='hidden' name='whatever[]' value='whatever'/> 
    
    <!-- checkboxes --> 
    <input type='checkbox' name='whatever[]' value='whatever'/> 
    
    関連する問題