【一】部門清單展示
分析:
①控制器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判斷,必須加上空格
<br>
【二】部門編輯
#分析:
#控制器:
DeptController.class.php方法:edit(展示模板】處理提交)
模板:edit.html
下面按步驟編寫程式碼
#(1)寫edit方法,實作範本展示<pre class="brush:php;toolbar:false">public function edit(){
//展示模板
$this->display();
}</pre>
(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(); } }
【三】部門刪除<br>
分析控制器:DeptController.class.php方法:del##模板:刪除不需要模板文件,因為刪除就是個處理資料過程。和登出一樣
###說明:有單一刪除,也有大量刪除。而編輯只能單一編輯,不能批次編輯。 ######(1)修改模板,新增複選框###id | 部门 | 所属部门 | 排序 | 备注 | 编辑数据 | 删除 |
{$vol.id} | {$vol.name} |
|
{$vol.sort} | {$vol.remark} | <td><a href="__CONTROLLER__/edit/id/{$vol.id}">编辑</a></td>
<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('删除失败'); } }#################113。管理功能的全部內容。 ######相關參考:######thinkphp教學#########
以上是部門管理功能的實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!