Rails项目中使用jQuery操作session

Ruby可以直接操作session,但有些实用场景下,不适合用ruby来操作,比如在一个index页面(有分页),每一条记录前面都有一个复选框,我现在想跨页选择记录,然后批量提交,此时如果内在jQuery中直接操作session,那实现这个功能就比较轻松了:

jQuery操作session的方法非常简单,常用的就是三种操作,下面还是用一个实例说明一下:

需求:在一个固定资产的index页面中,库里有N多的固定资产数据,现在需要跨页勾选特定的固定资产,然后导出一份固定资产清单。

先讲一下操作jQuery操作session的方法:

1.新建和赋值: $.session.set(‘all_asset_item_ids’, ‘new_value’) 创建一个名为’all_asset_item_ids’的session,并赋值为’new_value’;

2.清空原来的值:$.session.set(‘all_asset_item_ids’, ”) 其实跟上面那个完全一样。。。

3.删除session: $.session.remove(‘all_asset_item_ids’) 这个也不需要多解释了。。。

总结一下:非常简单!
下面再简单说明一下跨页选择的实现方法
:javascript

$(document).ready(function(){

    //清空所选,并且清除session

        $("#clear_all_checkbox").click(function(){

            $('input:checkbox').each(function () {

                $(this).attr('checked',false);

            });

            $.session.remove('all_asset_item_ids');

            $.session.set('all_asset_item_ids', '');

        });

    //点击分页链接,获取id,保存到session中

    $(".dataTables_paginate").click(function(){

        var cross_page_asset_item_ids = new Array();

        $(":checkbox").each(function(){

            if ($(this).is(":checked")){

                cross_page_asset_item_ids.push($(this).data("asset-item-id"));

            }

        });

        $.session.set('all_asset_item_ids', $.session.get('all_asset_item_ids') + ',' + cross_page_asset_item_ids);

    });

});

大致说明一下:当点击分页按钮时,创建一个新数组,然后对当前页所有的checkbox进行迭代,如果被勾选,则将该条资产记录的id写道数组中去,然后创建一个名为’all_asset_item_ids’的session,将数组的值以及自身之前已经有的值合并;

清空所选按钮不但需要去除勾选,还需要清空session。当选完之后,执行导入action完成后,也需要清空session

FORM :http://www.jianshu.com/p/0b859e7bd312

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值