layer弹出ifream,提交之后自动关闭;无限级分类排序以及无限级分类子孙图树形展示

先上效果图
这里写图片描述

父页面部分:

function show_add(id) {

    layer.open({
        type: 2,
        //type:2 弹出的类型是ifream,只有这样在子页面var index = parent.layer.getFrameIndex(window.name);才能获取到index的值
        title: false,
        scrollbar: false,
        closeBtn: 1,
        area: ['550px','460px'],
        skin: 'demo-class', //没有背景色
        shadeClose: true,
        content: ['/admin/set/add_organize?id='+id,'no'],
        end:function () {
            //弹出框销毁之后执行的函数;刷新父页面;该页面是用ajax抓取的页面,所以直接Ajaxpage();也可以用window.location.href="{:url('set/organize')}";
            //window.location.href="{:url('set/organize')}";
            Ajaxpage();
        }
    })
}

子页面(ifream弹出框)

function close_win() {
    if(parent.layer){
        //父页面type:2才能在子页面获取到index的值
        var index = parent.layer.getFrameIndex(window.name);
        parent.layer.close(index);
    }
}

jQuery获取url里的参数

$('#parent_id').val(getUrlParam('id'));

function getUrlParam(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
var r = window.location.search.substr(1).match(reg);  //匹配目标参数
if (r!=null) return r[2]; return null; //返回参数值
}

后台无限分类排序及子孙图树形展示(ThinkPHP5框架)

public function getByWhere($map, $Nowpage, $limits)
{
   $result = $this->where($map)->page($Nowpage,$limits)->order('parent_id asc')->order('sort asc')->select();
   //无限极分类排序,安当前分类父级排序并当前子级紧跟当前分类,并为节点注入等级,方便看出树形结构
   $result = self::roleTree($result,0,0);

   foreach ($result as $key=>$val){

       //判断当前分类是否有下级
       $nextType = $this->where('parent_id',$val['id'])->select();
       if(empty($nextType)){
           $result[$key]['nextType'] = 0;
       }else{
           $result[$key]['nextType'] = 1;
       }

   }
   return $result;
}
public function roleTree($arr,$id=0,$lev = 0) {
     $subs = array(); // 子孙数组
     foreach($arr as $v) {
         if($v['parent_id'] == $id) {
             $v['lev'] = $lev;
             $subs[] = $v;
             $subs = array_merge($subs,self::roleTree($arr,$v['id'],$lev+1));
         }
     }
     return $subs;
}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值