web-dev-qa-db-ja.com

戻るボタンが押されたときにビューの公開フィルターオプションを保持する

ビューにajax露出フィルターがあります。ユーザーがフィルターからオプションを選択すると、コンテンツが読み込まれます。しかし、ビュー上のアイテムをクリックしてブラウザーの戻るボタンを押すと、公開されたフィルターがリセットされ、デフォルトのオプションが選択されます。ページを更新すると、同じことが起こります。

最後に選択したオプションを保持する方法はありますか?ビューのページ番号をクリックしても同じことが起こります。

ありがとうございました。

4
cissharp

この問題が解決するまで、これを機能させるにはajaxをオフにする必要があります。 http://drupal.org/node/1248332 を参照してください

次に、公開されたフィルターを編集し、「最後の選択を記憶」をチェックします。

2
Nigel Waters

ありがとうuser2890。これに遭遇した人のために、これがuser2890のコードの私の改良版です:

_$('.views-exposed-widget select').each(function() {
    if (
        $(this).find(':selected').val() !==
        $(this).find('option[selected="selected"]').val()
    )
        $(this).trigger('change');
});
_

したがって、このコードは、UIで選択されたオプションがHTMLの_selected="selected"_属性を持つオプションと異なる場合にのみ「変更」イベントをトリガーします。 user2890が述べたように、このコードを$(document).ready()に入れることができます。

1
Soroush Zo

より良い解決策は、Javascriptを使用することです。 AJAXを使用している場合は、すでにそれに依存しています。 jQueryを使用した1つのライナーがあります。

    if($('.views-exposed-widget select').length) {
        $('.views-exposed-widget select').trigger('change');
    }

それは通常のdocument.readyブレースに入る。 select要素でchangeイベントを発生させ、AJAXイベントをトリガーします。

0
jhchnc