在会话中传递所选国家(下拉)的值,然后重新加载当前页面(Rails 4)
Pass value of selected country (dropdown) in session and then reload current page (Rails 4)
在我的Rails应用程序中,我试图在页脚询问用户他想看到哪个国家(法国/美国/德国…),然后将此存储在会话中并重新加载他当前所在的页面。
注意:我只是想当前页面重新加载,但我不想在我的应用程序的url中添加一个参数(即我不想example.com/browser_country=France)。我希望它们保持原样(example.com)。
我该怎么做呢?
这是我下面的代码,但它不工作(我是一个Rails新手):
<footer class="footer">
<small>
MySuper Website <br/>
<select name= "browser_country", :onchange => "location.href = '#{current_path}'" >
<option value="">Select Country</option>
<option value="1">France</option>
<option value="2">United States</option>
</select>
</small>
如果在/app/controllers/static_pages_controller.rb上加载页面(主页)的控制器
class StaticPagesController < ApplicationController
def home
end
def set_country_into_session
session[:country] = :browser_country # i'm putting in session the country selected in the dropdown
end
end
您需要在此过程中添加一个ajax调用。
# your js file
$(function() {
$('select[name="browser_country"]').change(function() {
$.ajax({
url: 'static_pages/set_country_into_session',
data: 'browser_country=' + this.value,
success: function() {
location.reload();
}
});
});
});
# static_pages_controller.rb
def set_country_into_session
session[:country] = params[:browser_country]
render text => :ok
end
相关文章:
- 数据表 AJAX 筛选器重新加载数据
- 淡出加载然后淡入不起作用
- jQuery UI#Accordion加载然后fadeIN..怎样
- 如何在新加载的页面上执行(下拉)操作
- 根据上一个选项卡的选择器重新加载选项卡
- 获得“中止,因为不接受 0”并使用反应热加载器重新加载整页
- 咕噜咕噜的手表:实时加载重新加载落后 1 步....
- 中间的页脚加载然后粘在底部
- 如何为新加载的元素提供JQuery UI工具提示
- 如何在新加载的页面上使用相同的JavaScript代码(通过重定向)
- 使用PHP或Javascript检测页面刷新或新加载
- 砌体重新加载&reloadItems不起作用
- 如何使javascript计时器重新加载
- 如何获取新加载的图像's width / naturalWidth
- 加载然后换行,但是换行在jQuery中不起作用
- 列出并调用firefox扩展中新加载的选项卡中的js函数
- 旋转器重新加载图像似乎在覆盖层后面
- AJAX调用后,新加载的CSS选择器对jQuery.ech()不可用
- jQuery砌体-砌体重新加载后调用方法
- 如何打开子浏览器窗口,然后在新加载的子浏览器页面上执行脚本以单击其中的链接