我有一个搜索页面,允许用户搜索许多不同的字段。单击搜索后,默认情况下,页面每页显示10个条目,可以使用will_paginate选择查看下一个10或选择页码。有一个下拉菜单,允许您选择用户每页看到的条目数。
我尝试了两段代码:
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个结果。
第二个下拉菜单允许您选择每页编号的条目,但要更改视图,您必须重新单击搜索。
我希望我的代码更像第一次下拉,但我认为重新搜索有点贵。有没有办法停止重新提交搜索但更改显示?
提前致谢
答案 0 :(得分:1)
如果更改每页显示的项目数,则无论如何都必须进行重新查询(因为只有要显示的项目已从数据库加载)。如果您更改每页显示的项目,并且您在第2页,您会看到什么?项目10 - 60?因此,如果您更改每页的项目,您几乎总是也会切换到第一页,这无论如何都需要重新查询。
第二:似乎你想在javascript中重新加载数据。您调用以获取数据,但似乎对加载的数据不执行任何操作。