【问题标题】:Select Box Selected Item Staying After Search选择框选择的项目在搜索后停留
【发布时间】:2023-03-23 01:55:01
【问题描述】:

我目前有一个按多个选择框排序的表格。选择框可以正常工作并对表格进行排序/过滤,但是每当用户提交搜索时,页面都会刷新并且选择框会重置。我希望在搜索后保留所选项目,例如,如果您选择男性然后点击 go,在页面刷新后,仍然选择男性。我目前已经成功实现了无限滚动,如果有帮助的话,我正在为我的框架使用 rails 3 和 twitter-bootstrap。

这是我的代码:

index.html.erb

 <form class="form-inline"
        <p>
         <label class="radio">
          <input type="radio" name="gender_search" value="M">M
         </label>
        <label class="radio">
          <input type="radio" name="gender_search" value="F">F
        </label>

        <select name="state_search" class="span2">
          <option value="">Select a State</option>
          <option>----------------</option>
          <option>LA</option>
          <option>MS</option>
          <option>TX</option>
        </select>
        <select name="city_search" class="span2">
          <option value="">Select a City</option>
          <option>----------------</option>
          <option>Mandeville</option>
          <option>Covington</option>
        </select>
        <button type="submit" class="btn">GO</button>
        </p>
      </form>
      <table class="table table-striped table-bordered span8 table-condensed"     
       id="articles_table" >
        <thead class="header">
          <tr>
            <th>ID</th>
            <th>Title</th>
            <th>Description</th>
            <th>Created_At</th>
          </tr>
        </thead>
        <tbody>
          <%= render @articles %>
        </tbody>

_article.html.erb

<tr>
      <td> <%= article_counter +1 %> </td>
      <td> <%= article.Title %> </td>
      <td> <%= article.Description %> </td>
      <td> <%= article.Created_At %> </td>
</tr>

articles_controller.rb

def index
@articles = Article.state_search(params[:state_search]).gender_search(params[:gender_search]).city_search(params[:city_search]).page(params[:page]).limit(50).order('NTRP DESC', 'Last_Name ASC')
  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @articles }
    format.js
  end
end

【问题讨论】:

    标签: ruby-on-rails twitter-bootstrap ruby-on-rails-3 drop-down-menu html-table


    【解决方案1】:

    嗯,

    select_tag(:city_id, options_for_select([['Lisbon', 1], ['Madrid', 2]], @previous_choice)
    

    首先,我建议你使用 Rails 的表单助手让事情变得更整洁!您的表单如下所示:

    <%= form_tag articles_path, :method => "GET" do %>
    
        <%= radio_button_tag :gender_search, "M" %>
        <%= label_tag :gender_search_M, "M" %>
        <%= radio_button_tag :gender_search, "F" %>
        <%= label_tag :gender_search_F, "F" %>
    
        <%= select_tag :state_search, options_for_select([['Select a state', 0],['-----------', 0],['LA', 'LA'],['MS', 'MS'], ['TX', 'TX']], @prev_state) %>
        <%= select_tag :city_search, mptions_for_select([['Select a city', 0],['----------', 0],['Mandeville', 'Mandeville'],['Covington', 'Covington']], @prev_city) %>
    
        <%= submit_tag "Go" %>
    
    <% end %>
    

    注意 select_tag 中的 @prev_state 和 @prev_city。这些是在articles_controller 中设置的:

    def index
    
        @prev_city = params[:city_search]
        @prev_state = params[:state_search]
    
        # other stuff
    end
    

    所以这个想法是每次用户提交时,params[:xxx] 包含她选择的任何内容。然后,您制作视图中可用的变量,我们将这些变量提供给 options_for_select。

    希望这会有所帮助,祝你快乐!

    【讨论】:

    • 这将创建正确排序表格的选择框,但在我点击 go 后它不会粘住。如果需要,我可以发布我的代码。 @肖
    • 我正在调查!稍后回复
    • 谢谢,但其他答案对我有用!不过,您的回答仍然会有所帮助,因为知道做某事的方法不止一种总是很好! @肖
    • 你在赚钱,幸运和不幸总是有更多的东西要学。看看我上面的编辑,我已经测试了表格,它看起来很可靠。干杯。
    • 谢谢!!!!我比另一个更喜欢这个答案!我最近发布了另一个与具有相同概念的单选按钮相关的问题。有机会可以看看吗?再次感谢! @肖
    猜你喜欢
    • 1970-01-01
    • 2014-04-15
    • 2013-06-13
    • 2010-10-18
    • 2013-12-21
    • 1970-01-01
    • 2015-09-16
    • 2021-03-27
    • 1970-01-01
    相关资源
    最近更新 更多