
【一】部门列表展示
分析:
①控制器DeptController.class.php ②方法showList(不要使用list方法,因为list是关键词) ③模板文件:showList.html
下面按步骤编写
①创建方法showList来展示模板
class DeptController extends Controller{
public function showList(){
$this->display();
}
}②将模板文件showList.html复制到View/Dept下(因为控制器为Dept,方法为showList,所以要一一对应)
③修改静态资源路径
④修该showList方法,获取部门数据。并传递到模板
public function showList(){
$model = M('dept');//模型实例化
$data = $model->order('sort asc')->select();//条件查询,升序排列
$this->assign('data',$data);//变量分配传递到模板
$this->display();
}⑤模板遍历读取数据
<table border="1" cellspacing="0">
<tr>
<td>id</td><td>部门</td><td>所属部门</td><td>排序</td><td>备注</td><td>编辑数据</td><td>删除数据</td>
</tr>
<volist name='data' id='vol'>
<tr>
<td class="num">{$vol.id}</td>
<td class="name">{$vol.name}</td>
<td class="procress">
<if condition="$vol.pid == 0">
顶级部门 <else/>
二级部门 </if>
</td>
<td class="node">{$vol.sort}</td>
<td class="time">{$vol.remark}</td>
<td><a href="javascript:;">编辑</a></td>
<td><a href="javascript:;">删除</a></td>
</tr>
</volist></table>注意:1. 模板的if判断,必须加空格
<if condition="$vol.pid == 0">顶级部门</if><br>
2.<else />加/
【二】部门编辑
分析:
控制器:DeptController.class.php
方法:edit(展示模板】处理提交)
模板:edit.html
下面按步骤编写代码
(1)编写edit方法,实现模板展示
public function edit(){
//展示模板
$this->display();
}(2)修改编辑按钮,跳页时带上id
<td><a href="__CONTROLLER__/edit/id/{$vol.id}">编辑</a></td>(3)复制模板文件edit.html到指定位置,Admin/View/Dept/edit.html;修改静态资源路径
(4)修改edit方法,展示原来数据
id:<input type="text" name="id" readonly="readonly" value="{$data.id}"><br/>部门:<input type="text" name="name" value="{$data.name}"><br/>所属部门:<select>
<option value="0">顶级部门</option>
<volist name="info" id="vol">
<option value="{$vol.id}">{$vol.name}</option>
</volist></select><br/>排序:<input type="text" name="sort" value="{$data.sort}"><br/>备注:<input type="text" name="id" value="{$data.remark}"><br/>(5)处理表单提交页面
隐藏域:因为系统限制不能执行批量修改,所以修改时必须指定主键。所以必须添加一个隐藏域,来传递id
<form action="" method="post">
id:<input type="hidden" name="id" value="{$data.id}"><br/>
<!-- 或者$Think.get.id -->
部门:<input type="text" name="name" value="{$data.name}"><br/>
所属部门: <select name="pid">
<option value="0">顶级部门</option>
<volist name="info" id="vol">
<option value="{$vol.id}">{$vol.name}</option>
</volist>
</select><br/>
排序:<input type="text" name="sort" value="{$data.sort}"><br/>
备注:<input type="text" name="remark" value="{$data.remark}"><br/>
<button>提交</button></form>jquery提交:
<script type="text/javascript">
$(document).ready(function(){
$('button').on('click',function(){
$('form').submit();//提交表单 })
})</script>(6)数据的保存,修改edit方法后的代码
public function edit(){//展示模板或者post请求 if (IS_POST){ $post = I('post.'); // dump($post);die; $model = M('dept'); //保存操作 $result = $model->save($post); if ($result !== false) { $this->success('修改成功',U('showList'),3); }else{ $this->error('修改失败'); } }else{ //接收id $id=I('get.id'); //实例化模型 $model = M('dept'); //查询指定记录 $data = $model->find($id); // 查询全部的部门信息(不包含当前级),同于下拉。因为包含自己所在级别会在递归时陷入死循环? $info = $model->where('id != '.$id)->select(); //变量分配 $this->assign('data',$data); $this->assign('info',$info); //展示模板 $this->display(); } }【三】部门删除
分析
控制器:DeptController.class.php
方法:del
模板:删除不需要模板文件,因为删除就是个处理数据过程。和登出一样
说明:有单个删除,也有批量删除。而编辑只能单个编辑,不能批量编辑。
(1)修改模板,添加复选框
<table border="1" cellspacing="0">
<tr>
</td>><td>id</td><td>部门</td>
<td>所属部门</td><td>排序</td><td>备注</td><td>编辑数据</td><td><a href="javascript:;" class="del">删除</a</td>
</tr>
<volist name='data' id='vol'>
<tr>
<td class="num">{$vol.id}</td>
<td class="name">{$vol.name}</td>
<td class="procress">
<if condition="$vol.pid == 0">
顶级部门
<else/>
二级部门
</if>
</td>
<td class="node">{$vol.sort}</td>
<td class="time">{$vol.remark}</td>
<td><a href="__CONTROLLER__/edit/id/{$vol.id}">编辑</a></td>
<td><input type="checkbox" class="deptid" value="{$vol.id}"></td>
</tr>
</volist>
</table>(2)点击删除按钮,实现删除
①点击删除,获取复选框的值(jquery实现)。之后到php删除方法
<script type="text/javascript">
$(document).ready(function(){
$('.del').on('click',function(){
var id = '';
$.each($('input:checkbox:checked'),function(){
id += $(this).val()+',';
}); // 去掉最后的,通过截取字符串获取
id = id.substring(0,id.length-1); //带着参数跳转到del方法
window.location.href = '__CONTROLLER__/del/id/'+id;//删除方法和展示方法的控制器是同级,所以用模板常量__CONTROLLER__ })
})</script>②编写del方法,实现删除
//真删除---批量和单个删除
public function del(){
//接收参数
$id = I('get.id'); //模型实例化
$model = M('dept'); //删除
$result = $model->delete($id); //判断结果,删除成功或失败都会跳转到列表页,所以不用加入跳转链接
if ($result) { $this->success('删除成功');
}else{ $this->error('删除失败');
}
}以上就是ThinkPHP部门管理功能的全部内容。
相关参考:thinkphp教程
以上就是部门管理功能的实现的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号