【一】部门列表展示
分析:
1 2 3 | ①控制器DeptController. class .php
②方法showList(不要使用list方法,因为list是关键词)
③模板文件:showList.html
|
下面按步骤编写
①创建方法showList来展示模板
1 2 3 4 5 | class DeptController extends Controller{
public function showList(){
$this ->display();
}
}
|
②将模板文件showList.html复制到View/Dept下(因为控制器为Dept,方法为showList,所以要一一对应)
③修改静态资源路径
④修该showList方法,获取部门数据。并传递到模板
1 2 3 4 5 6 | public function showList(){
$model = M( 'dept' );
$data = $model ->order( 'sort asc' )->select();
$this ->assign( 'data' , $data );
$this ->display();
}
|
⑤模板遍历读取数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <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>
2.<else />加/
【二】部门编辑
分析:
控制器:DeptController.class.php
方法:edit(展示模板】处理提交)
模板:edit.html
下面按步骤编写代码
(1)编写edit方法,实现模板展示
1 2 3 4 | public function edit(){
$this ->display();
}
|
(2)修改编辑按钮,跳页时带上id
1 | <td><a href= "__CONTROLLER__/edit/id/{$vol.id}" >编辑</a></td>
|
(3)复制模板文件edit.html到指定位置,Admin/View/Dept/edit.html
;修改静态资源路径
(4)修改edit方法,展示原来数据
1 2 3 4 5 | 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
1 2 3 4 5 6 7 8 9 10 11 12 13 | < form action = "" method = "post" >
id:< input type = "hidden" name = "id" value = "{$data.id}" >< br />
部门:< 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提交:
1 2 3 4 5 | <script type= "text/javascript" >
$(document).ready( function (){
$( 'button' ).on( 'click' , function (){
$( 'form' ).submit();
})</script>
|
(6)数据的保存,修改edit方法后的代码
【三】部门删除
分析
控制器:DeptController.class.php
方法:del
模板:删除不需要模板文件,因为删除就是个处理数据过程。和登出一样
说明:有单个删除,也有批量删除。而编辑只能单个编辑,不能批量编辑。
(1)修改模板,添加复选框
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <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删除方法
1 2 3 4 5 6 7 8 9 10 | <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);
window.location.href = '__CONTROLLER__/del/id/' +id;
})</script>
|
②编写del方法,实现删除
//真删除---批量和单个删除
1 2 3 4 5 6 7 8 9 | public function del(){
$id = I( 'get.id' );
$model = M( 'dept' );
$result = $model -> delete ( $id );
if ( $result ) { $this ->success( '删除成功' );
} else { $this ->error( '删除失败' );
}
}
|
以上就是ThinkPHP部门管理功能的全部内容。
相关参考:thinkphp教程
以上就是部门管理功能的实现的详细内容