質問

私は、ユーザーが価格の範囲、銀行、および他のものを経てフィルタすることができるはず/支払いインタフェースを持っています。これらのフィルタは、標準の選択ボックスです。私は、フィルタフォームを送信すると、すべてのポストデータは支払い/サーチと呼ばれる別の方法になります。その方法の実行検証は、セッションflashdataにポスト値を保存し、URLを介してflashdata名を渡す/支払いをユーザの背中をリダイレクトします。

フィルタなしで私の標準ページネーションリンクは、まさにこのようなものですのでます:

payments/index/20/
payments/index/40/
payments/index/60/

そして、あなたは、フィルタのフォームを送信した場合、返すURLがあります:

payments/index/0/b48c7cbd5489129a337b0a24f830fd93

これは単に素晴らしい作品。私は何か他のもののためにゼロを変更すると、それだけで罰金ページを区切り。唯一の問題は、しかし、ページネーションオフセット後<< 1 2 3 4 >>ページリンクはハッシュを維持する文句を言わないということです。 CodeIgniterでは、その追加のURIセグメントを無視したページへのリンクを生成している。

マイuri_segment設定がすでに3に設定されています:

$config['uri_segment'] = 3;
そのハッシュかよい存在する可能性があるため、

Iは4にuri_segmentを設定することはできません。どのように私はこの問題を解決することができます任意のアイデア?それは、CIは、URIの最後のセグメントとしてオフセットを持つようにするために必須ですか?私はすべての耳をしていますので、たぶん私は、間違ったアプローチをしようとしています。

あなたの人々をありがとうございます。

の編集:なぜ私はあなたが頼むかもしれないURIを経由してflashdata名を渡すのですか?それは、ユーザーが複数のブラウザタブを開いて、各タブに異なる検索を行うことができますので。あなたが行うフィルタリングごとに、新しいflashdata VARが生成されます。

役に立ちましたか?

解決

ただ、ユーザーがGoogleから来て、ここでの解決策はあります:

ページネーションの設定アレイでは、私はこのために私のBASE_URLを変更しました

$config['base_url'] = site_url('payments/index/' . $this->uri->segment(3) . '/' . $this->uri->segment(4));

セグメント(3)私のオフセット数とセグメント(4)のハッシュです。したがって、この場合には、ハッシュはしてもしなくてもよい存在し、改ページがしますまだ仕事ます。

も あなたが支払いに行くと、URLにはflashdata IDが存在しない場合、それは空のフィルタを使用して空の配列を検索し、作成/支払いにユーザーをリダイレクトします。

別のアプローチは、この可能性があります。そして、それが戻って支払い/ _NEW_FLASHDATA_ID_HERE_にリダイレクトします。この方法では、URLは常にURLでflashdata IDを持つことになりますし、あなたはいつものように最後のURIセグメントにオフセット改ページを持つことができます。

他のヒント

セッションアイテムとしてハッシュを設定しないのはなぜ?

$this->session->set_userdata('session_flashdata_hash', $hash);

あなたがそれを設定解除するまで、ハッシュが利用可能になります。

$this->session->unset_userdata('session_flashdata_hash');

それとも、セッションを破棄します。

まで
$this->session->sess_destroy();

なぜあなたは、ハッシュが存在するかどうかをチェックし、その?

に基づいてuri_segmentに設定されていません
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top