JS实现全选,全不选,和单个复选框的点击事件,在分页的时候保存选中记录

实现全选全不选以及单个选中,并点击下一页时,保存选中记录,后台使用的是session来实现保存的!
流程就是给每个复选框都加上点击事件(包括全选复选框),在点击的时候获取到对应的ID,将这个ID通过ajax发送到后台,后台处理后存入session!!!
注意在该页面方法中需要每进入页面就判断session中有没有你存入的id,如果有将复选框变成选中的!下面是整体的代码,有很多不足,希望给多多给意见啊!!!
在这里插入图片描述
前段js代码

 //全选按钮
  var id_array = [];
  var scurl = "{:U('setsess')}";
  $('.allselect').click(function(){
    $(":checkbox[name='ids[]']").prop("checked", this.checked); // this指代的你当前选择的这个元素的JS对象
      if($("input[class='allselect']").is(':checked')){
          $.each($('input:checkbox:checked'),function(){
            if($(this).val() != 'on'){
              id_array.push($(this).val());  
            }
          });
           $.post(scurl,{sta:4,id:id_array},function (resp) {
                    console.log(resp);
                },'json');
      } else {
        console.log(id_array);
         $.post(scurl,{sta:5,id:id_array},function (resp) {
              console.log(resp);
          },'json');
        id_array.length = 0;

      }
    });


  //单个复选框点击事件
      var fuxuan = '';
      var shuzu = [];
      
      $("input[name='ids[]']").click(function(){
          if($(this).is(':checked') == true){
          fuxuan = $(this).val();
          console.log(fuxuan)
              $.post(scurl,{sta:1,id:fuxuan},function (resp) {
                  console.log(resp);
              },'json');
          } else {
              fuxuan = $(this).val();
              $.post(scurl,{sta:2,id:fuxuan},function (resp) {
                  console.log(resp);
              },'json');
          }
      });

然后是后端代码

//批量分页处理传过来的id,存到session中
    public function setsess()
    {  
        $id = $_POST['id'];
        if(is_array($id)){
            $id = implode(',', $id);
        }
        if(session('admingsid') == ''){
            session('admingsid',$id);
        } else {
            $cook = explode(',',session('admingsid'));
            foreach($cook as $kk=>$vv){
                 if(!$vv){
                    unset($cook[$kk]); 
                 } 
            }
            if(!$cook){
                $cook = array();
            }
            //var_dump($cook);
            if($_POST['sta'] == 1){
                if(!in_array($id,$cook)){
                    array_push($cook,$id);
                    $cook = implode(',',$cook);
                    session('admingsid',$cook);
                }      
            } elseif($_POST['sta'] == 2) {
                if(in_array($id,$cook)){
                    foreach($cook as $k=>$v){
                        if($id != $v){
                            $xinde .= $v.',';  
                        }
                    }
                    session('admingsid',$xinde);
                }  
            } elseif($_POST['sta'] == 3) {
                session('admingsid',null);
                $this->ajaxReturn(array('admingsid' => session('admingsid')));
            } elseif ($_POST['sta'] == 4) {
                $id = explode(',', $id);
                foreach ($id as $k => $v) {
                    array_push($cook,$v);    
                }
                $cook = implode(',',array_unique($cook));
                session('admingsid',$cook);
            } elseif ($_POST['sta'] == 5) {
                //全选按钮为全不选时,把存在于原来session中的值去除
                $id = explode(',', $id);
                foreach ($cook as $key => $value) {
                if(in_array($value,$id))
                    unset($cook[$key]);
                }
                if($cook){
                    $cook = implode(',', $cook);
                }
                session('admingsid',$cook);
            }
        }
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值