2

問題を解決する方法について完全に困惑することはあまりありませんが、これについては、正直なところ手がかりがありません.

私は多くのプロジェクトを持つサイトを構築しています。ホームページでは、フィルターをオンまたはオフにしてこれらのプロジェクトを閲覧できるようにしたいと考えています。たとえば、フィルタ タイプの 1 つに GENRE があります。ユーザーにはジャンルのリストが表示され、クリックすると、そのジャンルに一致するすべてのプロジェクトが除外されます。さらに、2 つの異なるジャンルをクリックすると、両方のジャンルに一致するプロジェクトのみが表示されます。

問題は、これはすべて AJAX を介して行う必要があることです。そのとき、物事が混乱し始めます。新しいフィルターをセットアップするだけでなく、現在配置されているフィルターを記憶する ajax 呼び出しを行うにはどうすればよいですか? ページが読み込まれると、次のようなことができます

<a href="/api/projects?genre=first_genre">First Genre</a>
<a href="/api/projects?genre=second_genre">Second Genre</a>

しかし、問題は、一度に 2 つクリックすると、1 つのジャンルでしかフィルタリングされないことです。おそらく、リンクをクリックするたびに JS を使用して、既に選択されているジャンルの配列を含むようにすべてのリンクを更新することもできますが、これは信じられないほどずさんです。すべてのリンクは次のようになります。

<a href="/api/projects/?genres[]=first_second&genres[]=second_genre etc etc...">First Genre</a>

私が持っていた別の考えは、現在のすべてのフィルターを Cookie に保存し、リンクがクリックされたときに、その新しいフィルターを Cookie のフィルターのリストに追加することでしたが、これもずさんなようです。

ポイントは、これを行う適切な方法がわからず、少し迷っているということです。以前にこのようなことをして成功した人は誰でも、助けて!!

4

1 に答える 1

1

Ajax フィルターは、ユーザーの観点から常に 2 つの問題を引き起こします。1 つは、ユーザーがフィルター URL をブックマークできず、戻るボタンを使用できないことです。

たとえば、ユーザーがフィルター 1 をクリックしてから、フィルター 2 をクリックします。ユーザーが [戻る] ボタンをクリックするか、ページをリロードすると、ユーザーはすべてのフィルター データを失います。

すべてを管理する 1 つの方法を次に示します。

この方法を使用できます Jquery BBQ http://benalman.com/projects/jquery-bbq-plugin/

ジャンル フィルターをクリックすると、上記のプラグインを使用してフィルター値を URL のハッシュに追加できます。ユーザーがページをリロードするか、戻るボタンを使用するたびに、選択したすべてのジャンルがハッシュに含まれます。

于 2012-07-06T08:57:24.253 に答える