即使按下后退按钮,如何显示表单结果
How to show form results even when pressing the back button
我有一个用户选择位置的表单。它上面有 remote: true
及其设置,所以我可以用 ajax 的方式返回结果。
形式
<%= form_for :location, url: get_inventory_path, remote: true do |f| %>
<div class="input-field col s12">
<%= f.select :location_id, options_for_select(@locations.collect { |l|
[l.station + ', ' + l.venue + ', ' + l.area + ', ' + l.city + ', ' + l.country, l.id] }, 1), {}, { id: 'location_select', class: "browser-default" } %>
</div>
</div>
</div>
<div class="card-action center-align">
<%= f.submit "Go", class: "btn blue", data: { disable_with: "Please wait..." } %>
</div>
<% end %>
问题是,在结果上我有一些按钮来编辑这些结果,这会将用户带到另一个页面,但是在按下后退按钮时,表单结果不存在。
我如何显示这些结果,或以某种方式记住它们?
我看到您根据 select 框的值加载 ajax 数据。问题是,当您从该页面重定向到其他页面时,返回时会丢失 ajax 数据。
解决此问题的一种方法是,每当 select 框中的值发生变化时,通过加载数据的相同 ajax 请求以及返回此页面时在会话中保存位置, 检查会话中是否设置了位置并显示该位置的数据。
我有一个用户选择位置的表单。它上面有 remote: true
及其设置,所以我可以用 ajax 的方式返回结果。
形式
<%= form_for :location, url: get_inventory_path, remote: true do |f| %>
<div class="input-field col s12">
<%= f.select :location_id, options_for_select(@locations.collect { |l|
[l.station + ', ' + l.venue + ', ' + l.area + ', ' + l.city + ', ' + l.country, l.id] }, 1), {}, { id: 'location_select', class: "browser-default" } %>
</div>
</div>
</div>
<div class="card-action center-align">
<%= f.submit "Go", class: "btn blue", data: { disable_with: "Please wait..." } %>
</div>
<% end %>
问题是,在结果上我有一些按钮来编辑这些结果,这会将用户带到另一个页面,但是在按下后退按钮时,表单结果不存在。
我如何显示这些结果,或以某种方式记住它们?
我看到您根据 select 框的值加载 ajax 数据。问题是,当您从该页面重定向到其他页面时,返回时会丢失 ajax 数据。
解决此问题的一种方法是,每当 select 框中的值发生变化时,通过加载数据的相同 ajax 请求以及返回此页面时在会话中保存位置, 检查会话中是否设置了位置并显示该位置的数据。