首頁 > php框架 > ThinkPHP > 主體

部門管理功能的實現

WJ
發布: 2020-06-10 09:39:20
轉載
3455 人瀏覽過

部門管理功能的實現

【一】部門清單展示

分析:

①控制器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=&#39;data&#39; id=&#39;vol&#39;>
        <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/>

頂級部門

##           2.加上/

 

【二】部門編輯

#分析:

#控制器:

DeptController.class.php

方法:edit(展示模板】處理提交)

模板:edit.html

下面按步驟編寫程式碼

#(1)寫edit方法,實作範本展示<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">public function edit(){ //展示模板 $this-&gt;display(); }</pre><div class="contentsignin">登入後複製</div></div>(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(){
        $(&#39;button&#39;).on(&#39;click&#39;,function(){
            $(&#39;form&#39;).submit();//提交表单        })
    })</script>
登入後複製

(6)資料的保存,修改edit方法後的程式碼

public function edit(){//展示模板或者post请求            if (IS_POST){                $post = I(&#39;post.&#39;);                // dump($post);die;                $model = M(&#39;dept&#39;);                //保存操作                $result = $model->save($post);                if ($result !== false) {                    $this->success(&#39;修改成功&#39;,U(&#39;showList&#39;),3);                }else{                    $this->error(&#39;修改失败&#39;);                }            }else{                //接收id                $id=I(&#39;get.id&#39;);                //实例化模型                $model = M(&#39;dept&#39;);                //查询指定记录                $data = $model->find($id);                // 查询全部的部门信息(不包含当前级),同于下拉。因为包含自己所在级别会在递归时陷入死循环?                $info = $model->where(&#39;id != &#39;.$id)->select();                //变量分配                $this->assign(&#39;data&#39;,$data);                $this->assign(&#39;info&#39;,$info);                //展示模板                $this->display();            }        }
登入後複製

【三】部門刪除<br/>

分析

控制器:

DeptController.class.php方法:del##模板:刪除不需要模板文件,因為刪除就是個處理資料過程。和登出一樣

###說明:有單一刪除,也有大量刪除。而編輯只能單一編輯,不能批次編輯。 ######(1)修改模板,新增複選框###
>
        
            <td><a href="__CONTROLLER__/edit/id/{$vol.id}">编辑</a></td>
            
id部门 所属部门排序备注编辑数据删除
{$vol.id} {$vol.name} 顶级部门 二级部门 {$vol.sort} {$vol.remark}
登入後複製
###(2)點選刪除按鈕,實現刪除######       ①點選刪除,取得複選框的值(jquery實現)。之後到php刪除方法###
<script type="text/javascript">
    $(document).ready(function(){
        $(&#39;.del&#39;).on(&#39;click&#39;,function(){
            var id = &#39;&#39;;
            $.each($(&#39;input:checkbox:checked&#39;),function(){
                id += $(this).val()+&#39;,&#39;;
            });            // 去掉最后的,通过截取字符串获取
            id = id.substring(0,id.length-1);            //带着参数跳转到del方法
            window.location.href = &#39;__CONTROLLER__/del/id/&#39;+id;//删除方法和展示方法的控制器是同级,所以用模板常量__CONTROLLER__        })
    })</script>
登入後複製
###      ②寫del方法,實現刪除######       //真刪除---批次和單一刪除###      ###
 public function del(){
            //接收参数
            $id  = I(&#39;get.id&#39;);            //模型实例化
            $model = M(&#39;dept&#39;);            //删除
            $result = $model->delete($id);            //判断结果,删除成功或失败都会跳转到列表页,所以不用加入跳转链接
            if ($result) {                $this->success(&#39;删除成功&#39;);
            }else{                $this->error(&#39;删除失败&#39;);
            }
        }
登入後複製
#################113。管理功能的全部內容。 ######相關參考:######thinkphp教學#########

以上是部門管理功能的實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:51dev.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板