Heim  >  Artikel  >  PHP-Framework  >  Implementierung von Abteilungsleitungsfunktionen

Implementierung von Abteilungsleitungsfunktionen

WJ
WJnach vorne
2020-06-09 17:02:223371Durchsuche

Implementierung von Abteilungsleitungsfunktionen

[1] Anzeige der Abteilungsliste

Analyse:

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

Das Folgende wird Schritt für Schritt geschrieben

①Erstellen Sie die Methode showList um die Vorlage anzuzeigen

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

②Kopieren Sie die Vorlagendatei showList.html nach View/Dept (da der Controller Dept und die Methode showList ist, muss also eine Eins-zu-Eins-Entsprechung vorliegen)

③Ändern Sie den statischen Ressourcenpfad

④Ändern Sie die showList-Methode, um Abteilungsdaten abzurufen. Und an die Vorlage übergeben

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

⑤Template durchläuft die gelesenen Daten

<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判断,必须加空格

26476d1a8228e2fc9cc9d0d60905eb38顶级部门0e19ae19f9bb3871b7693b46538542ae<br>

           2.9de3db33131318b3291f7cdc0a95a15a加/

 

[2] Abteilungsredakteur

Analyse:

Controller: DeptController.class.php

Methode: Bearbeiten (Vorlage anzeigen) Verarbeitungsübermittlung )

Vorlage: edit.html

Schreiben Sie den Code Schritt für Schritt

(1) Schreiben Sie die Bearbeitungsmethode, um die Vorlagenanzeige zu realisieren

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

(2) Schaltfläche „Bearbeiten“ ändern, beim Springen zur Seite die ID mitbringen

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

(3) Kopieren Sie die Vorlagendatei edit.html an den angegebenen Speicherort, Admin/View/Dept/edit.html; ändern Sie den statischen Ressourcenpfad

( 4) Ändern Sie die Bearbeitungsmethode, zeigen Sie die Originaldaten an

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) Verarbeiten Sie die Formularübermittlungsseite

Verstecktes Feld: Aufgrund von Systemeinschränkungen kann keine Stapeländerung durchgeführt werden, daher der Primärschlüssel muss beim Ändern angegeben werden. Daher muss ein verstecktes Feld hinzugefügt werden, um die 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-Übermittlung zu übergeben:

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

(6) Speichern von Daten, Ändern des Codes der Bearbeitungsmethode

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] Abteilungslöschung

Analyse

Controller:DeptController.class.php

Methode: del

Vorlage: Zum Löschen ist keine Vorlagendatei erforderlich, da zum Löschen keine Vorlagedatei erforderlich ist ist ein Datenverarbeitungsprozess. Identisch mit Abmelden

Hinweis: Es gibt Einzellöschungen und Stapellöschungen. Die Bearbeitung kann nur einzeln erfolgen, nicht in Stapeln.

(1) Ändern Sie die Vorlage und fügen Sie das Kontrollkästchen hinzu

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

(2) Klicken Sie auf die Schaltfläche „Löschen“, um zu löschen.

①Klicken Sie auf „Löschen“, um den Wert des Kontrollkästchens abzurufen ( jquery erreichen). Gehen Sie dann zur PHP-Löschmethode

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

②Schreiben Sie die Del-Methode, um das Löschen zu erreichen

// Echtes Löschen --- Stapel- und Einzellöschung
Alle Verwaltungsfunktionen.

Verwandte Referenzen:

Thinkphp-Tutorial

Das obige ist der detaillierte Inhalt vonImplementierung von Abteilungsleitungsfunktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51dev.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen