如何在页面刷新后一次保持多个复选框的真实值
How to hold the true value of many checkboxes at once after page refresh
搜索正在工作fine.but我的问题是当我选中一个复选框并进行搜索时,它将获得我的结果,并且在检查两个或更多复选框时refresh.But之后也存在复选框True状态。它不支持真正的 states.I 需要保持那些真正的状态
我的问题是我有 4 个复选框。当我一次选中两个或多个复选框时,它会得到我的结果,然后真实状态是 gone.I 需要保持这些状态才能在页面刷新后打印报告。
这是我目前对四个复选框的看法。
.row
.col-md-3
= check_box_tag "search_customer_supplier[accounts_dealer_types.dealer_code][]","CUS", params[:search_customer_supplier]['accounts_dealer_types.dealer_code'] == 'CUS'
= label_tag "Organizational Customer"
.col-md-3
= check_box_tag "search_customer_supplier[accounts_dealer_types.dealer_code][]", "SUP", params[:search_customer_supplier]['accounts_dealer_types.dealer_code'] == 'SUP'
= label_tag "Organzational Supplier"
col-md-3
= check_box_tag "search_customer_supplier[accounts_dealer_types.dealer_code][]", "INDCUS", params[:search_customer_supplier]['accounts_dealer_types.dealer_code'] == 'INDCUS'
= label_tag "Individual Customer"
.col-md-3
= check_box_tag "search_customer_supplier[accounts_dealer_types.dealer_code][]", "INDSUP", params[:search_customer_supplier]['accounts_dealer_types.dealer_code'] == 'INDSUP'
= label_tag "Individual Supplier"
这是我的控制器
def customer_supplier_report
Organization
Address
ContactNumber
refined_query = ""
if params[:search].present? or params[:excel_report].present?
search_customer_supplier = params[:search_customer_supplier]
if params[:organization_children].present? and search_customer_supplier["id"].present?
organization_id = search_customer_supplier["id"]
organization = Organization.find(organization_id)
anchestor_ids = organization.anchestors.map{|o| o[:member].id }
search_customer_supplier["id"] = "(#{anchestor_ids.join(' OR ')})" if anchestor_ids.any?
end
#puts "======================================================================"
# puts params[:search_customer_supplier]['accounts_dealer_types.dealer_code']
params[:search_customer_supplier]['accounts_dealer_types.dealer_code'] = params[:search_customer_supplier]['accounts_dealer_types.dealer_code'].join(" OR ") if params[:search_customer_supplier]['accounts_dealer_types.dealer_code'].present?
puts params[:search_customer_supplier]['accounts_dealer_types.dealer_code']
customer_report = params[:search_customer_supplier].map { |k, v| "#{k}:#{v}" if v.present? }.compact
else
customer_report = ["accounts_dealer_types.dealer_code:(CUS OR SUP OR INDCUS OR INDSUP)"]
end
@all_address = params[:all_address].to_bool if params[:all_address].present?
refined_query += customer_report.join(" AND ")
params[:query] = refined_query
params[:per_page] = 4000
@customer_reports = Organization.search(params)
@account_managers = User.where(active: true)
respond_to do |format|
if params[:excel_report].present?
request.format = "xls"
format.xls { set_attachment_name "customer_supplier_report.xls" }
else
format.html
end
end
end
字段名search_customer_supplier[accounts_dealer_types.dealer_code][]
表示params[:search_customer_supplier]['accounts_dealer_types.dealer_code']
是一个数组,所以要检查是否包含:
check_box_tag "search_customer_supplier[accounts_dealer_types.dealer_code][]",
"CUS",
params.dig(:search_customer_supplier, 'accounts_dealer_types.dealer_code')&.include?('CUS')
搜索正在工作fine.but我的问题是当我选中一个复选框并进行搜索时,它将获得我的结果,并且在检查两个或更多复选框时refresh.But之后也存在复选框True状态。它不支持真正的 states.I 需要保持那些真正的状态
我的问题是我有 4 个复选框。当我一次选中两个或多个复选框时,它会得到我的结果,然后真实状态是 gone.I 需要保持这些状态才能在页面刷新后打印报告。
这是我目前对四个复选框的看法。
.row
.col-md-3
= check_box_tag "search_customer_supplier[accounts_dealer_types.dealer_code][]","CUS", params[:search_customer_supplier]['accounts_dealer_types.dealer_code'] == 'CUS'
= label_tag "Organizational Customer"
.col-md-3
= check_box_tag "search_customer_supplier[accounts_dealer_types.dealer_code][]", "SUP", params[:search_customer_supplier]['accounts_dealer_types.dealer_code'] == 'SUP'
= label_tag "Organzational Supplier"
col-md-3
= check_box_tag "search_customer_supplier[accounts_dealer_types.dealer_code][]", "INDCUS", params[:search_customer_supplier]['accounts_dealer_types.dealer_code'] == 'INDCUS'
= label_tag "Individual Customer"
.col-md-3
= check_box_tag "search_customer_supplier[accounts_dealer_types.dealer_code][]", "INDSUP", params[:search_customer_supplier]['accounts_dealer_types.dealer_code'] == 'INDSUP'
= label_tag "Individual Supplier"
这是我的控制器
def customer_supplier_report
Organization
Address
ContactNumber
refined_query = ""
if params[:search].present? or params[:excel_report].present?
search_customer_supplier = params[:search_customer_supplier]
if params[:organization_children].present? and search_customer_supplier["id"].present?
organization_id = search_customer_supplier["id"]
organization = Organization.find(organization_id)
anchestor_ids = organization.anchestors.map{|o| o[:member].id }
search_customer_supplier["id"] = "(#{anchestor_ids.join(' OR ')})" if anchestor_ids.any?
end
#puts "======================================================================"
# puts params[:search_customer_supplier]['accounts_dealer_types.dealer_code']
params[:search_customer_supplier]['accounts_dealer_types.dealer_code'] = params[:search_customer_supplier]['accounts_dealer_types.dealer_code'].join(" OR ") if params[:search_customer_supplier]['accounts_dealer_types.dealer_code'].present?
puts params[:search_customer_supplier]['accounts_dealer_types.dealer_code']
customer_report = params[:search_customer_supplier].map { |k, v| "#{k}:#{v}" if v.present? }.compact
else
customer_report = ["accounts_dealer_types.dealer_code:(CUS OR SUP OR INDCUS OR INDSUP)"]
end
@all_address = params[:all_address].to_bool if params[:all_address].present?
refined_query += customer_report.join(" AND ")
params[:query] = refined_query
params[:per_page] = 4000
@customer_reports = Organization.search(params)
@account_managers = User.where(active: true)
respond_to do |format|
if params[:excel_report].present?
request.format = "xls"
format.xls { set_attachment_name "customer_supplier_report.xls" }
else
format.html
end
end
end
字段名search_customer_supplier[accounts_dealer_types.dealer_code][]
表示params[:search_customer_supplier]['accounts_dealer_types.dealer_code']
是一个数组,所以要检查是否包含:
check_box_tag "search_customer_supplier[accounts_dealer_types.dealer_code][]",
"CUS",
params.dig(:search_customer_supplier, 'accounts_dealer_types.dealer_code')&.include?('CUS')