【问题标题】:Select Box onClick - Rails选择框 onClick - Rails
【发布时间】:2008-10-22 20:34:09
【问题描述】:

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

<% @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)"%>

【问题讨论】:

    标签: javascript ruby-on-rails


    【解决方案1】:

    您是否考虑过在列表框中使用 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") %>
    

    【讨论】:

      【解决方案2】:

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

      查看http://redmine.rubyforge.org/svn/trunk 上的 Redmine 源代码。 UsersController 做了类似的事情——有一个允许过滤器的组合框。选择组合会重新加载页面。

      【讨论】:

        猜你喜欢
        • 2013-06-20
        • 2013-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-29
        • 1970-01-01
        • 1970-01-01
        • 2016-07-21
        相关资源
        最近更新 更多