tp框架视图层view——模板继承

在做网站的时候,每个网站都有头部和尾部,也就是菜单栏和页脚,网站的各个子网页的头部和尾部基本就是一样的,所以tp框架提供了一种模板继承的方法:

1、首先在View的Main文件夹下建立一个base.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>

2、做操作方法: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);

    }
}

3、在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>

看一下下效果:

4、删除和修改:

在View文件夹下的Main文件夹内新建一个mains.html文件:

<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的控制器里做操作方法:

<?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文件:

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

看一下效果:

点击删除c002:

点击修改c003价格为40:

时间: 2024-09-30 16:41:01

tp框架视图层view——模板继承的相关文章

微信小程序视图层WXML_模板

微信小程序视图层WXML_小程序模板 微信小程序的WXML提供模板(template),可以在模板中定义代码片段,然后在不同的地方调用. 定义微信小程序的模板 使用name属性,作为微信小程序模板的名字.然后在<template/>内定义代码片段,如: <!-- index: int msg: string time: string --> <template name="msgItem"> <view> <text> {{i

Django 路由层,视图层,模板层

MVC与MTV模型 一.MVC Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户的交互(页面),控制器接受用户的输入调用模型和视图完成用户的请求,其示意图如下所示: 二.MTV Django的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django的MTV分别是: M 代表模型(Mode

laravel5.1框架基础之Blade模板继承简单使用方法分析

模板继承什么用? 自然是增强基础页面的复用,有利于页面文档的条理,也便于更改多处使用的内容,如页头.页脚 1.用法概要 @include('common.header') 包含子视图 @extends('article.common.base') 继承基础模板 @yield('content') 视图占位符 @section('content') @endsection继承模板后向视图占位符中填入内容 {{-- 注释 --}} Blade模板中注释的使用 2.具体使用 2.1 新建Article

小程序框架之视图层 View~获取界面节点信息

获取界面上的节点信息 WXML节点信息 节点信息查询 API 可以用于获取节点属性.样式.在界面上的位置等信息. 最常见的用法是使用这个接口来查询某个节点的当前位置,以及界面的滚动位置. 示例代码: const query = wx.createSelectorQuery() query.select('#the-id').boundingClientRect(function(res){ res.top // #the-id 节点的上边界坐标(相对于显示区域) }) query.selectV

Django框架(六) Django之模板继承

模版导入和继承 模版导入 语法:{% include '模版名称' %} 如:{% include 'adv.html' %} adv.html <div class="adv"> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title">Panel title<

tp框架---View视图层---模板继承(举例说明)

当我们做动态页面时,我们会发现一个网站的头部和尾部是相同的,那么我们如何用tp框架来做模板呢 ? 先看一下注意事项: (1)每个区块由<block></block>标签组成 (2)子模板中使用extend标签继承模板 (3)注释语法:{/* 注释内容 */ } 或 {// 注释内容 }  一.看一下基本的模板继承 (1)先做出模板页面  Ceshi/View/Main/base.html <!DOCTYPE html> <html> <head>

tp框架之模板继承

模板继承是一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层.模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区块(block),然后继承(extend)该基础模板的子模板中就可以对基础模板中定义的区块进行重载. 因此,模板继承的优势其实是设计基础模板中的区块(block)和子模板中替换这些区块. 每个区块由<block></block>标签组成.下面就是基础模板中的一个典型的区块设计(用于设计

Django基础之视图层(views.py)和模板层

目录 Django基础之视图层(views.py)和模板层 视图层 JsonResponse对象 form表单上传文件 FBV与CBV 即CBV源码分析 django settings源码分析及实际应用 模板层 模板传值 过滤器( | ) 常用内置过滤器 其他过滤器(了解) 标签 if判断 for循环 with标签 csrf_token标签 自定义过滤器和标签 自定义过滤器 自定义标签 自定义过滤器和标签的区别 模板的继承 模板的导入 Django基础之视图层(views.py)和模板层 视图层

微信小程序,学习笔记(一)框架,视图层

微信小程序,学习笔记(一)框架,视图层 学习链接:http://www.w3cschool.cn/weixinapp/ 因为其实并非原创,但是并没有什么好的类别可选,所以修改成:"翻译"了. 熟悉 文档结构介绍 --- [D] pages --- [D] utils --- [F] app.js --- [F] app.json --- [F] app.wxss 全局变量.对象.方法 普通类型 对象 App 应用程序全局实例,在app.js中定义,每个程序只有一个实例,可以通过如下方式