У меня есть простой блок выбора с годами и значением как такПрисвоить переменную Jquery к сеансу Rails переменной
<div id="year_selection_area" class="controls text-center">
<select class="form-control " name="Legislation year" id="dueYear">
<OPTION VALUE='2017' >2017</OPTION>
<OPTION VALUE='2016' >2016</OPTION>
<OPTION VALUE='2015'>2015</OPTION>
<OPTION VALUE='2014' >2014</OPTION>
<OPTION VALUE='2013'>2013</OPTION>
<OPTION VALUE='2012' >2012</OPTION>
<OPTION VALUE='2011'>2011</OPTION>
<OPTION VALUE='2010'>2010</OPTION>
<OPTION VALUE='' DISABLED>MORE YEARS ADDED SOON</OPTION>
</select>
</div>
я также задаю выбран в начале через смесь JQuery и рельсы
<% if session[:year_browsing]==nil%>
<% session[:year_browsing] = 2016%>
<% else %>
<%= session[:year_browsing] %>
<%end%>
<script type="text/javascript">
jQuery(document).ready(function($) {
$('.form-control option[value=<%= session[:year_browsing] %>]').attr('selected','selected');
});
однако мне нужно изменить переменную сеанса в зависимости от того, что пользователь нажмет Я попробовал, если/другое заявление, но он выполняет все рубина, как только он попадает в том, что на функции изменения
$(".form-control").change(function() {
alert($(".form-control").val());
var selectedValue = $(".form-control").val();
if (selectedValue=='2017'){
<% session[:year_browsing] = 2017 %>
}
else if (selectedValue=='2016'){
<% session[:year_browsing] = 2016 %>
}
else if ($(".form-control").val()=='2015'){
<% session[:year_browsing] = 2015 %>
}
else if ($(".form-control").val()=='2014'){
<% session[:year_browsing] = 2014 %>
}
else if ($(".form-control").val()=='2013'){
<% session[:year_browsing] = 2013 %>
}
else if ($(".form-control").val()=='2012'){
<% session[:year_browsing] = 2012 %>
}
else if ($(".form-control").val()=='2011'){
<% session[:year_browsing] = 2011 %>
}
else if ($(".form-control").val()=='2010'){
<% session[:year_browsing] = 2010 %>
}
else{
<% session[:year_browsing] = 0 %>
}
});
вы должны послать метод AJAX, когда вы хотите изменить переменная сеанса, вы не можете обновлять сеанс по видам – Thorin
Я бы предложил использовать локальное хранилище для браузера вместо хранилища сеансов, чтобы добиться того же. – Sebin
@Sebin спасибо, я отправил свое решение ниже –