0

ユーザーがさまざまなフィールドで検索できる検索ページがあります。[検索]をクリックすると、ページにはデフォルトで1ページあたり10エントリが表示され、will_paginateを使用して次の10エントリを表示するか、ページ番号を選択するオプションがあります。ユーザーがページごとに表示するエントリの数を選択できるドロップダウンメニューがあります。

私は2つのコードを試しました:

Results per page: <%= select_tag :per_page, options_for_select([10,20,50], :selected=>params[:per_page]),  { :onchange => "this.form.submit();"}   %></br>

Results per page: <%= select_tag :per_page, options_for_select([10,20,50], :selected=>params[:per_page]),  :onchange => "'#{request.query_string}&per_page=' + this.getValue()"  %></br>

たとえば、最初のドロップダウンが20に変更されると、ページはすぐに再度検索しますが、ページごとに20の結果が表示されます。

2番目のドロップダウンでは、ページ番号ごとにエントリを選択できますが、ビューを変更するには、[検索]を再度クリックする必要があります。

コードを最初のドロップダウンのように機能させたいのですが、再検索には少し費用がかかると思います。検索の再送信を停止して表示を変更する方法はありますか?

前もって感謝します

4

1 に答える 1

1

ページごとに表示されるアイテムの量を変更する場合は、とにかく再クエリを実行する必要があります(表示するアイテムのみがデータベースからロードされているため)。また、ページごとに表示されるアイテムを変更し、2ページ目にいる場合、何が表示されますか?アイテム10〜60?したがって、ページごとにアイテムを変更すると、ほとんどの場合、ページ1にも切り替わり、とにかく再クエリが必要になります。

そして2番目:javascriptのデータをリロードしたいようです。データを取得するために呼び出しを行いますが、ロードされたデータには何もしないようです。

于 2012-08-08T09:43:00.740 に答える