tp框架視圖層view——模板繼承

在作網站的時候,每一個網站都有頭部和尾部,也就是菜單欄和頁腳,網站的各個子網頁的頭部和尾部基本就是同樣的,因此tp框架提供了一種模板繼承的方法:php

一、首先在View的Main文件夾下創建一個base.html頁面:html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><block name="title">無標題文檔</block></title>
<style>
#head{ width:100%; height:100px; background-color:red}
#footer{ width:100%; height:50px; background-color:black}
</style>
<block name="tou"></block><!--頭部-->
</head>

<body>

<div id="head">
<foreach name="arr" item="vo"><!--循環遍歷,從數據庫讀數據-->
<span>{$vo.lbname}</span>
</foreach>
</div>
<block name="nr"></block>
<div id="footer"></div><!--尾部-->
</body>
</html>

二、作操做方法:MainController.class.php頁面:數據庫

<?php
namespace Ceshi\Controller;
use Think\Controller;
class MainController extends  Controller
{  public function test(){
        $this->base();
        $this->show();
    }
    public function base(){//這樣能夠調用模板中鏈接數據庫部分
        $m = M("leibie");
        $arr = $m->select();
        $this->assign("arr",$arr);
        
    }
}

三、在View文件夾的Main文件夾下新建一個test.html文件:框架

<extend name="base"/><!--調用模板-->
<block name="title">子頁面</block>
<block name="tou">
<style>
#nr{ width:100%; height:400px; background-color:yellow}
</style>
</block>
<block name="nr">
    <div id="nr"></div>
</block>

看一下下效果:post

四、刪除和修改:網站

在View文件夾下的Main文件夾內新建一個mains.html文件:ui

<extend name="base"/><!--繼承模板-->
<block name="nr">
    <table width="100%" border="1">
        <tr>
            <td>代號</td>
            <td>名稱</td>
            <td>系列</td>
            <td>油耗</td>
            <td>價格</td>
            <td>操做</td>
        </tr>
        <foreach name="attr" item="v"><!--循環遍歷出表中內容-->
            <tr>
                <td>{$v.code}</td>
                <td>{$v.name}</td>
                <td>{$v.brand}</td>
                <td>{$v.oil}</td>
                <td>{$v.price}</td>
                <td><a href="__CONTROLLER__/del/code/{$v.code}">刪除</a>
                <a href="__CONTROLLER__/upd/code/{$v.code}">修改</a>
                </td>
            </tr>
        </foreach>
    </table>
</block>

依然在MainController的控制器裏作操做方法:this

<?php
namespace Ceshi\Controller;
use Think\Controller;
class MainController extends  Controller
{  public function test(){
        $this->base();
        $this->show();
    }
    public function base(){//這樣能夠調用模板中鏈接數據庫部分
        $m = M("leibie");
        $arr = $m->select();
        $this->assign("arr",$arr);
        
    }
    public function mains(){
        $m = M("car");
        $arr = $m->select();
        $this->assign("attr",$arr);
        $this->base();
        $this->show();
    }
    public function del($code){
        $m = M("car");
        if($m->delete($code)){
            $url = U("mains");
            $this->success("刪除成功!",$url);//第二個參數,表示返回的路徑;第三個參數:表示停留時間
        }
        else{
            $this->error("刪除失敗!");
        }
    }
    public function upd(){
        $m = M("car");
        $code = $_GET["code"];
        $attr = $m->find($code);
        $this->assign("attr",$attr);
        if(empty($_POST)){
            $this->show();
        }
        else{
            $m->create();
            $m->save();
            
        }
    } 
}

在View下的Main下創建一個upd.html文件:url

<extend name="base"/>
<block name="nr">
<form action="__ACTION__" method="post">
    <div><input type="hidden" name="Code" value="{$attr.code}"/></div>
    <div>名稱:<input type="text" name="Name" value="{$attr.name}"/></div>
    <div>系列:<input type="text" name="Brand" value="{$attr.brand}"/></div>
    <div>油耗:<input type="text" name="Oil" value="{$attr.oil}"/></div>
    <div>價格:<input type="text" name="Price" value="{$attr.price}"/></div>
    <input type="submit" value="修改"/>
</form>
</block>

看一下效果:spa

點擊刪除c002:

點擊修改c003價格爲40:

相關文章
相關標籤/搜索