选中“单击时”框 - 导轨”

Select Box onClick - Rails

本文关键字:导轨 单击时 单击 选中      更新时间:2023-09-26

我有一个 Rails 应用程序,在 erb 代码中,我使用一个选择框。我想做的是重新加载传递排序参数的页面。我的控制器已经处理了它,但我不知道如何使用我的选择框中的选定值重新加载页面。这是我的代码:

<% @options = {:latest => 'lastest' , :alphabetical => 'alphabetical', :pricelow => 'price-low', :pricehigh =>'pricehigh'} %>
<%= select_tag 'sort[]', options_for_select(@options), :include_blank => true,:onchange => "location.reload('location?sort='+this.value)"%>

您是否考虑过在列表框中使用 ajax 调用?如果您的控制器上有一个基于排序参数仅返回排序列表的方法,那么您可以执行以下操作:

<% @options = {:latest => 'lastest' , :alphabetical => 'alphabetical', :pricelow => 'price-low', :pricehigh =>'pricehigh'} %>
<%= select_tag 'sort[]', options_for_select(@options), :include_blank => true,:onchange => remote_function(:url => {:controller => 'your_controller', :action => 'list_sort_method'}, :with => "'sort='+this.value", :update => "div_containing_list") %>

如果您不想使用 AJAX,请在代码周围放置一个form_tag。

看看 Redmine 源代码 http://redmine.rubyforge.org/svn/trunk.用户控制器做类似的事情 - 有一个允许过滤器的组合框。选择组合将重新加载页面。