先上效果图
父页面部分:
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;
}