Home  >  Article  >  PHP Framework  >  Implementation of department management functions

Implementation of department management functions

WJ
WJforward
2020-06-09 17:02:223469browse

Implementation of department management functions

[1] Department list display

Analysis:

①控制器DeptController.class.php
②方法showList(不要使用list方法,因为list是关键词)
③模板文件:showList.html

Follow the steps to write

①Create the method showList to display the template

class DeptController extends Controller{
        public function showList(){
            $this->display();
        }
}

②Copy the template file showList.html to View/Dept (because the controller is Dept and the method is showList, so there must be a one-to-one correspondence)

③Modify the static resource path

④Revise the showList method to obtain department data. And passed to the template

public function showList(){
            $model = M('dept');//模型实例化
            $data = $model->order('sort asc')->select();//条件查询,升序排列
            $this->assign('data',$data);//变量分配传递到模板
            $this->display();
        }

⑤ Template traverses to read data

<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>

Note: 1. Spaces must be added to the if judgment of the template

0715519a642ebda1b568b1cd276de835Top-level department0e19ae19f9bb3871b7693b46538542ae<br>

2.9de3db33131318b3291f7cdc0a95a15aAdd/

【二】Department Editor

Analysis:

Controller: DeptController.class.php

Method: edit (display template】process submission)

Template: edit.html

Write the code step by step

(1) Write the edit method to realize template display

public function edit(){
//展示模板
 $this->display();
}

(2) Modify the edit button and bring the id when jumping to the page

<td><a href="__CONTROLLER__/edit/id/{$vol.id}">编辑</a></td>

(3) Copy the template file edit.html to the specified location, Admin/View/Dept/edit.html; Modify the static resource path

(4) Modify the edit method to display the original data

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) Process the form submission page

Hidden field: Because system restrictions cannot perform batch modification, the primary key must be specified when modifying. Therefore, a hidden field must be added to pass the 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 submission:

<script type="text/javascript">
    $(document).ready(function(){
        $(&#39;button&#39;).on(&#39;click&#39;,function(){
            $(&#39;form&#39;).submit();//提交表单        })
    })</script>

(6) Saving of data, modifying the code after editing the edit method

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();            }        }

[3] Department Delete

Analysis

Controller:DeptController.class.php

Method: del

Template: Delete no template required File, because deletion is a data processing process. Same as logging out

Note: There are single deletions and batch deletions. Editing can only be done individually, not in batches.

(1) Modify the template and add a check box

>
        
            <td><a href="__CONTROLLER__/edit/id/{$vol.id}">编辑</a></td>
            
id部门 所属部门排序备注编辑数据删除
{$vol.id} {$vol.name} 顶级部门 二级部门 {$vol.sort} {$vol.remark}

(2) Click the delete button to achieve deletion

①Click delete to get the value of the check box (jquery accomplish). Then go to the php deletion method

<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>

②Write the del method to achieve deletion

//True deletion---batch and single deletion

 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;);
            }
        }

The above is the ThinkPHP department All management functions.

Related references:thinkphp tutorial

The above is the detailed content of Implementation of department management functions. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:51dev.com. If there is any infringement, please contact admin@php.cn delete