问题保持复选框选择
Issue keeping checkbox selection
我做了一个复选框数组,但是我 select 的选项在提交后没有保留检查。
这是表格:
|people|
|id| |name|
1 Bill
2 Steve
3 Mark
4 MrYoshi
这是控制器:
def searching
@people = Person.all
@search = Person.find(:all,:conditions=>['id IN (?)',params[:search_id] ])
end
视图如下:
<% form_tag :controller=>"person",:action=>"searching" do %>
<% @people.each do |c| %>
<%= check_box_tag "search_id_#{c.id}", c.id.to_s ,params[:search_business].to_s == c.id.to_s %>
<% end %>
<%= submit_tag "SEARCHING" %>
<% end %>
我读了这个信息http://apidock.com/rails/ActionView/Helpers/FormTagHelper/check_box_tag
这是一个有效但未使用数组值的复选框示例:
<%= check_box_tag "example", "2", params[:example].to_s == "2", {:multiple => true} %>
我试过这一行,参数正在发送但没有保留复选框 selected:
<%= check_box_tag "search_id[]", c.id.to_s ,params[:search_business].to_s == c.id.to_s %>
###Parameters: { "commit"=>"SEARCHING", "search_id"=>["1","2"]
我试过这一行,参数正在发送但没有保留复选框 selected:
<%= check_box_tag "search_id[]", c.id.to_a ,params[:search_business].to_a == c.id.to_a %>
###Parameters: { "commit"=>"SEARCHING", "search_id"=>["1","2"]
我试过这一行,参数正在发送但没有保留复选框 selected:
<%= check_box_tag "search_id[]", c.id.to_a %>
###Parameters: { "commit"=>"SEARCHING", "search_id"=>["1","2"]
我试过这一行,参数正在发送但没有保留复选框 selected:
<%= check_box_tag "search_id[]", c.id %>
###Parameters: { "commit"=>"SEARCHING", "search_id"=>["1","2"]
有人可以帮我解决这个例子吗?
非常感谢您提供的所有帮助。
对于复选框,您应该以数组的形式发送参数。这是通过将“[]”附加到输入的 "name" 属性来完成的,就像您在某些尝试中所做的那样。我会这样做:
控制器(搜索前和搜索表单调用的相同操作)
@people = Person.all
if params[:search_ids]
@search = Person.find_all_by_id(params[:search_ids])
end
查看
<% form_tag :controller=>"person",:action=>"searching" do %>
<% @people.each do |c| %>
<% checked = @search && @search.collect(&:id).include?(c.id) %>
<%= check_box_tag "search_ids[]", c.id, checked %>
<% end %>
<%= submit_tag "SEARCHING" %>
<% end %>
编辑 - 我刚刚意识到我混淆了@people(数据库中的所有人)和@search,这应该只是选中的人。
我做了一个复选框数组,但是我 select 的选项在提交后没有保留检查。
这是表格:
|people|
|id| |name|
1 Bill
2 Steve
3 Mark
4 MrYoshi
这是控制器:
def searching
@people = Person.all
@search = Person.find(:all,:conditions=>['id IN (?)',params[:search_id] ])
end
视图如下:
<% form_tag :controller=>"person",:action=>"searching" do %>
<% @people.each do |c| %>
<%= check_box_tag "search_id_#{c.id}", c.id.to_s ,params[:search_business].to_s == c.id.to_s %>
<% end %>
<%= submit_tag "SEARCHING" %>
<% end %>
我读了这个信息http://apidock.com/rails/ActionView/Helpers/FormTagHelper/check_box_tag
这是一个有效但未使用数组值的复选框示例:
<%= check_box_tag "example", "2", params[:example].to_s == "2", {:multiple => true} %>
我试过这一行,参数正在发送但没有保留复选框 selected:
<%= check_box_tag "search_id[]", c.id.to_s ,params[:search_business].to_s == c.id.to_s %>
###Parameters: { "commit"=>"SEARCHING", "search_id"=>["1","2"]
我试过这一行,参数正在发送但没有保留复选框 selected:
<%= check_box_tag "search_id[]", c.id.to_a ,params[:search_business].to_a == c.id.to_a %>
###Parameters: { "commit"=>"SEARCHING", "search_id"=>["1","2"]
我试过这一行,参数正在发送但没有保留复选框 selected:
<%= check_box_tag "search_id[]", c.id.to_a %>
###Parameters: { "commit"=>"SEARCHING", "search_id"=>["1","2"]
我试过这一行,参数正在发送但没有保留复选框 selected:
<%= check_box_tag "search_id[]", c.id %>
###Parameters: { "commit"=>"SEARCHING", "search_id"=>["1","2"]
有人可以帮我解决这个例子吗?
非常感谢您提供的所有帮助。
对于复选框,您应该以数组的形式发送参数。这是通过将“[]”附加到输入的 "name" 属性来完成的,就像您在某些尝试中所做的那样。我会这样做:
控制器(搜索前和搜索表单调用的相同操作)
@people = Person.all
if params[:search_ids]
@search = Person.find_all_by_id(params[:search_ids])
end
查看
<% form_tag :controller=>"person",:action=>"searching" do %>
<% @people.each do |c| %>
<% checked = @search && @search.collect(&:id).include?(c.id) %>
<%= check_box_tag "search_ids[]", c.id, checked %>
<% end %>
<%= submit_tag "SEARCHING" %>
<% end %>
编辑 - 我刚刚意识到我混淆了@people(数据库中的所有人)和@search,这应该只是选中的人。