膨大な数のファイルを一覧表示するために will_paginate を使用しています。さらに分析するファイルを選択するためのチェックボックスもあります。次のJavaScriptを使用してページを変更しながら、IDをCookieに保存するには:
<script src="/assets/jquery.cookie.js" type="text/javascript"></script>
<script type="text/javascript">
var checkedIds = []
$('.checkmeplease').on("change", function(){
if($(this).is(':checked')) {
checkedIds.push($(this).val())
}
else {
checkedIds.splice(checkedIds.indexOf($(this).val()), 1);
}
$.cookie('checked_file_ids', checkedIds,{path:'/'});
});
</script>
私のチェックボックス:
<% @files.each do |file| %>
<p><td> <%= check_box_tag "files[]", file.id,false,:class=>'checkmeplease' %></td> <%= file.name %></p>
<%end%>
ID は保存されますが、will_pagination でページを変更すると、保存された ID が消えます。
このコードも紹介されました:
<script type="text/javascript">
var checkedIds = $.cookie('checked_file_ids');
$('p td input[type=checkbox]').on('change', function () {
if($(this).is(':checked')) {
checkedIds.push($(this).val())
}
else {
checkedIds.splice(checkedIds.indexOf($(this).val()), 1);
}
$.cookie('checked_file_ids', checkedIds);
})
</script>
しかし、 $('p td input[type=checkbox]').on('change', function ()
うまくいかないようです。
私の間違いはどこですか?前のページの ID も保存するにはどうすればよいですか? どうもありがとう。