编辑栏目不能将一个栏目设置为自己的子类的子栏目否则会互为子类,造成循环,独立成一团,与顶级栏目脱离关系,如果是这样的情况,禁止修改
控制页面editct.php
<?php define('ACC',true); include('../include/init.php'); $id=$_GET['id']+0; $cat=new catModel(); $catlist=$cat->getRow($id); print_r($catlist); $list=$cat->select(); $list=$cat->subtree($list,0,0); include(ROOT.'view/admin/templates/catedit.html'); ?>
提交页面catupdateAct.php
<?php define('ACC',true); include('../include/init.php'); $data=array(); if(empty($_POST['cat_name'])){ exit('数据不全'); } if(!empty($_POST['cat_name'])){ $data['cat_name']=$_POST['cat_name']; } if(!empty($_POST['cat_num'])){ $data['cat_num']=$_POST['cat_num']; } if(!empty($_POST['cat_desc'])){ $data['cat_desc']=$_POST['cat_desc']; } //$data['parent_id']=$_POST['parent_id']; $data['id']=$_POST['id']; // $cat=new catModel(); //更改后的上级 $rowlist=$cat->getRow($_POST['parent_id']); if($cat->is_son($_POST['id'],$_POST['parent_id'])){ exit('一个栏目不能修改为该栏目子栏目的子栏目'); } $rs=$cat->catupdate($data); if($rs){ echo '数据修改成功','<br/>'; }else{ echo '数据修改失败','<br/>'; } ?> <a href='./catelist.php'>返回分类列表</a>
判断是否是自己的子类的方法:is_son($parent_id,$son_id);
public function is_son($p,$s){ if($p==$s){ return true; } $arr=$this->select(); while($s!=0){ $sp=$this->getOne('parent_id',$s); if($p==$sp){ return true; } $s=$sp; } return false; }