0

CodeIgniterを使用しています。私は、 (コンテンツ記事、電子商取引、ユーザー、バナーなど) などのいくつかのコンポーネントに分かれているグローバル カテゴリ リストを持っています。/categories/get_categoriesDatabase Table のすべての行を表示するページがありますci_categories

そのページには、使用可能な(コンポーネント)の<select>ボックスがあります。ユーザーまたは電子商取引のいずれかを選択すると、POST データが送信され、コンポーネントの id に対応するカテゴリ項目がフィルター処理されます。これはすべてうまくいきます。<options>ci_categories.com_id/categories/get_categories/$com_idcom_id

しかし、私が望むのは、このフィルターを選択したままにして、デフォルトの選択 (すべてのコンポーネント) に戻らないことです。たとえば、[カテゴリ] をクリックすると、すべてのカテゴリ行が<table>. そこで、ドロップダウンの選択ボックス リストからオプションを選択すると、特定の行の出力がフィルター処理されます。次に、 [新しいカテゴリを追加] をクリックすると、選択したコンポーネント オプションが次のページに渡されます。新しいアイテム情報を追加する次の FORM ページで、[保存] をクリックすると、すべてのカテゴリがリストされている前のページに戻りますが、そのフィルターがcom_id選択されています。

なにか提案を ?セッションやクッキーなしでそれを行う方法はありますか?

4

2 に答える 2

1

次のようにセッションフラッシュデータを使用できます。

フラッシュデータの設定

$this->session->set_flashdata('search','your_search');

フラッシュデータの読み取り

$this->session->flashdata('search');

flashdata は 1 回の更新のみに設定され、更新後に変数が削除されます

http://ellislab.com/codeigniter/user-guide/libraries/sessions.html

于 2013-05-20T12:20:31.367 に答える
1

セッションは、現在のユーザー エクスペリエンスに基づいてリクエスト間でデータを保存することを特に意図しているため、セッションを利用することをお勧めします。ほとんどの人は 1 つのブラウザ ウィンドウで Web サイトを検索するだけなので、実際に問題になることはありません。他のオプションがある場合でも、セッション/Cookie に保存される特定のコードでユーザーを識別する必要があります。

私が考えることができる唯一のオプションは、後ですべてのリンクを変更して、保存された情報を base64 でエンコードされた文字列に含めることです。しかし、それはあなたのリンク構造を台無しにし、検索エンジンに正しい URL を表示するためにすべてのページに正規リンクを必要とします.

セッションは CodeIgniter で適切に処理されるため、セッションに固執することをお勧めします。必要に応じて、メイン構成ファイルで設定することにより、それらをデータベースに保存することもできます。

Flashdata はオプションですが、最終的にはセッションですが、リクエストは 1 つしかありません。

于 2013-05-20T12:21:18.213 に答える