0

a[]、b[]、c[] のように、上のチェックボックスで選択したアイテムのデータを表示するテーブルがあります。最初に、ページが最初にロードされたとき、テーブル表示は空です。チェックボックスの選択が行われると、テーブルには選択のデータが表示されます。次に、すべてのチェックボックスのチェックを外して表示を押すと、テーブルの表示は空になります。

したがって、コントローラーでは、チェックボックス選択の変数は次のようになります>

@selected_brands = params[:ブランド] || セッション[:ブランド] || {}

お気づきかもしれませんが、params[] と session[] はビューのフォームから送信された値です。{} -> チェックボックスが選択されていない場合。再びコントローラに、@products = Product.find_all_by_brand(@selected_brands.keys) があります。

私が抱えている問題は、ボックスのチェックを外すと、前に行った選択に従って、空のテーブルではなく、前のセッションのデータがテーブルに表示されることです。私は何をしていないのですか?

4

1 に答える 1

1

多くの人を悩ませているHTMLの問題に遭遇します。すべてのチェックボックスをオフにすると、サーバーに何も送信されないため、変更が記録されないため、最後の状況が引き続き記録されます。

これには多くの解決策(イベント、JavaScript、サーバーサイドコード)があるため、この状況を最適に処理する方法を一般的なhtmlに検索範囲を広げることをお勧めします。

Javascriptが気に入らず、db-actionが多すぎても問題がない場合は、製品に対して選択されているすべてのブランドを削除し、この結果が得られたら選択したブランドを再適用してください。

于 2012-08-10T08:37:18.070 に答える