在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
删除分类 删除一个分类的同时,其所有子分类都删除 在控制器CategoryCtroller.class.php中添加删除函数(delete) 在分类模型中添加钩子函数_before_delete()【注:此处要使用父类模型执行delete函数,防止进入死循环;父类模型要指定操作的数据表】 构造批量删除参数 思路:先观察批量删除时的传参结构,然后在钩子函数_befeore_delete()中构造出批量删除的id数组 构造批量删除【注:$option要按引用传参,否则函数内对局部变量的值的修改,不能影响函数外的变量】 添加分类【控制器-》页面】 1、在控制器CategoryController.class.php/add()中取出所有分类 public function getTree() { $data = $this->select(); return $this->_getTree($data); } /*****递归从数据中找子分类*****/ private function _getTree($data, $parent_id=0, $level=0) { static $_ret = array(); foreach ($data as $k => $v) { if($v['parent_id'] == $parent_id) { $v['level'] = $level; //用来标记这个分类是第几级 $_ret[] = $v; //找子分类 $this->_getTree($data, $v['id'], $level+1); } } return $_ret; } 【注:下拉框】 修改分类 【控制器->页面】{注:修改页面,要保留原分类信息} 1、在控制器CategoryController.class.php/edit()中取出所有分类且取出所以子分类 public function edit() { $id = I('get.id'); if(IS_POST) { $model = D('category'); if($model->create(I('post.'), 2)) { if($model->save() !== FALSE) { $this->success('修改成功!', U('lst', array('p' => I('get.p', 1)))); exit; } } $this->error($model->getError()); } $model = D('category'); $data = $model->find($id); //取出所有的分类做下拉框 $catData = $model->getTree(); //取出当前分类的子分类 $children = $model->getChildren($id); /* var_dump($children); var_dump($data); var_dump($catData);die(); */ $this->assign(array( 'children' => $children, 'data' => $data, 'catData' => $catData, '_page_title' => '修改分类', '_page_btn_name' => '分类列表', '_page_btn_link' => U('lst'), )); $this->display(); } 2、修改页面(eit.html)中构造表单 <layout name="layout" /> <div class="main-div"> <form name="main_form" method="POST" action="__SELF__" > <input type="hidden" name="id" value="<?php echo $data['id']; ?>" /> <table cellspacing="1" cellpadding="3" width="100%"> <tr> <td class="label">上级分类:</td> <td> <select name="parent_id"> <option value="0">顶级分类</option> <?php foreach($catData as $k => $v): //跳过当前分类和子分类 if($v['id'] == $data['id'] || in_array($v['id'], $children)) continue; if($v['id'] == $data['parent_id']) $select = 'selected="selected"'; else $select = ''; ?> <option <?php echo $select; ?> value="<?php echo $v['id']; ?>"><?php echo str_repeat('-', 8*$v['level']) .$v['cat_name']; ?></option> <?php endforeach; ?> </select> </td> </tr> <tr> <td class="label">分类名称:</td> <td> <input type="text" name="cat_name" value="<?php echo $data['cat_name'];?>" size='60' /> </td> </tr> <tr> <td colspan="99" align="center"> <input type="submit" class="button" value=" 确定 " /> <input type="reset" class="button" value=" 重置 " /> </td> </tr> </table> </form> </div> <script> </script> 注:上级分类不能是当前分类也不能是当前分类的子分类,则下拉框中不显示
|
2022-08-17
2022-07-18
2022-11-06
2022-08-17
2022-07-30
请发表评论