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

1、首先在View的Main文件夹下建立一个base.html页面:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title><block name="title">无标题文档</block></title>
  6. <style>
  7. #head{ width:100%; height:100px; background-color:red}
  8. #footer{ width:100%; height:50px; background-color:black}
  9. </style>
  10. <block name="tou"></block><!--头部-->
  11. </head>
  12.  
  13. <body>
  14.  
  15. <div id="head">
  16. <foreach name="arr" item="vo"><!--循环遍历,从数据库读数据-->
  17. <span>{$vo.lbname}</span>
  18. </foreach>
  19. </div>
  20. <block name="nr"></block>
  21. <div id="footer"></div><!--尾部-->
  22. </body>
  23. </html>

2、做操作方法:MainController.class.php页面:

  1. <?php
  2. namespace Ceshi\Controller;
  3. use Think\Controller;
  4. class MainController extends Controller
  5. { public function test(){
  6. $this->base();
  7. $this->show();
  8. }
  9. public function base(){//这样可以调用模板中连接数据库部分
  10. $m = M("leibie");
  11. $arr = $m->select();
  12. $this->assign("arr",$arr);
  13.  
  14. }
  15. }

3、在View文件夹的Main文件夹下新建一个test.html文件:

  1. <extend name="base"/><!--调用模板-->
  2. <block name="title">子页面</block>
  3. <block name="tou">
  4. <style>
  5. #nr{ width:100%; height:400px; background-color:yellow}
  6. </style>
  7. </block>
  8. <block name="nr">
  9. <div id="nr"></div>
  10. </block>

看一下下效果:

4、删除和修改:

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

  1. <extend name="base"/><!--继承模板-->
  2. <block name="nr">
  3. <table width="100%" border="1">
  4. <tr>
  5. <td>代号</td>
  6. <td>名称</td>
  7. <td>系列</td>
  8. <td>油耗</td>
  9. <td>价格</td>
  10. <td>操作</td>
  11. </tr>
  12. <foreach name="attr" item="v"><!--循环遍历出表中内容-->
  13. <tr>
  14. <td>{$v.code}</td>
  15. <td>{$v.name}</td>
  16. <td>{$v.brand}</td>
  17. <td>{$v.oil}</td>
  18. <td>{$v.price}</td>
  19. <td><a href="__CONTROLLER__/del/code/{$v.code}">删除</a>
  20. <a href="__CONTROLLER__/upd/code/{$v.code}">修改</a>
  21. </td>
  22. </tr>
  23. </foreach>
  24. </table>
  25. </block>

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

  1. <?php
  2. namespace Ceshi\Controller;
  3. use Think\Controller;
  4. class MainController extends Controller
  5. { public function test(){
  6. $this->base();
  7. $this->show();
  8. }
  9. public function base(){//这样可以调用模板中连接数据库部分
  10. $m = M("leibie");
  11. $arr = $m->select();
  12. $this->assign("arr",$arr);
  13.  
  14. }
  15. public function mains(){
  16. $m = M("car");
  17. $arr = $m->select();
  18. $this->assign("attr",$arr);
  19. $this->base();
  20. $this->show();
  21. }
  22. public function del($code){
  23. $m = M("car");
  24. if($m->delete($code)){
  25. $url = U("mains");
  26. $this->success("删除成功!",$url);//第二个参数,表示返回的路径;第三个参数:表示停留时间
  27. }
  28. else{
  29. $this->error("删除失败!");
  30. }
  31. }
  32. public function upd(){
  33. $m = M("car");
  34. $code = $_GET["code"];
  35. $attr = $m->find($code);
  36. $this->assign("attr",$attr);
  37. if(empty($_POST)){
  38. $this->show();
  39. }
  40. else{
  41. $m->create();
  42. $m->save();
  43.  
  44. }
  45. }
  46. }

在View下的Main下建立一个upd.html文件:

  1. <extend name="base"/>
  2. <block name="nr">
  3. <form action="__ACTION__" method="post">
  4. <div><input type="hidden" name="Code" value="{$attr.code}"/></div>
  5. <div>名称:<input type="text" name="Name" value="{$attr.name}"/></div>
  6. <div>系列:<input type="text" name="Brand" value="{$attr.brand}"/></div>
  7. <div>油耗:<input type="text" name="Oil" value="{$attr.oil}"/></div>
  8. <div>价格:<input type="text" name="Price" value="{$attr.price}"/></div>
  9. <input type="submit" value="修改"/>
  10. </form>
  11. </block>

看一下效果:

点击删除c002:

点击修改c003价格为40:

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

  1. 小程序框架之视图层 View

    (1)视图层View 框架的视图层由 WXML 与 WXSS 编写,由组件来进行展示. 将逻辑层的数据反应成视图,同时将视图层的事件发送给逻辑层. WXML(WeiXin Markup languag ...

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

    本文实例讲述了laravel5.1框架基础之Blade模板继承简单使用方法.分享给大家供大家参考,具体如下: 模板继承什么用? 自然是增强基础页面的复用,有利于页面文档的条理,也便于更改多处使用的内容 ...

  3. 小程序框架之视图层 View~事件系统~WXS响应事件

    WXS响应事件 基础库 2.4.4 开始支持,低版本需做兼容处理. 背景 有频繁用户交互的效果在小程序上表现是比较卡顿的,例如页面有 2 个元素 A 和 B,用户在 A 上做 touchmove 手势 ...

  4. 视图层view layer

    视图层是Django处理请求的核心代码层,我们大多数Python代码都集中在这一层面. 它对外接收用户请求,对内调度模型层和模版层,统合数据库和前端,最后根据业务逻辑,将处理好的数据,与前端结合,返回 ...

  5. 微信小程序学习——框架视图层(view)

    视图层是有WXML与WXSS编写的,由组件来进行展示. WXML(WeiXin Markup Language)用于写页面结构的. WXSS(WeiXin Style Sheet)用于页面的样式. 组 ...

  6. 小程序框架之视图层 View~基础组件

    框架为开发者提供了一系列基础组件,开发者可以通过组合这些基础组件进行快速开发.详细介绍请参考组件文档. 什么是组件: 组件是视图层的基本组成单元. 组件自带一些功能与微信风格一致的样式. 一个组件通常 ...

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

    获取界面上的节点信息 WXML节点信息 节点信息查询 API 可以用于获取节点属性.样式.在界面上的位置等信息. 最常见的用法是使用这个接口来查询某个节点的当前位置,以及界面的滚动位置. 示例代码: ...

  8. 微信小程序开发---视图层(View)

    WXML WXML能力: 数据绑定 列表渲染 条件渲染 模板 事件 数据绑定 数据绑定使用 Mustache 语法(双大括号)将变量包起来,可作用于内容,组件属性(需要在双引号之内),控制属性(需要在 ...

  9. 微信小程序学习笔记(四)--框架-视图层

    WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. 数据绑定 使用{{}}绑定数据. 简单绑定 <view clas ...

随机推荐

  1. winCE 获取路径信息

    最近在做一个SAP的winCE扫描枪项目,采用C#开发,不过在获取路径是采用了常用的System.IO.Directory.GetCurrentDirectory, 并不能使用:查询后了解到winCE ...

  2. Git 本地创建分支并提交远程分支

    在本地git checkout -b xxx 创建分支之后 想要提交分支到远程, 直接git push是不行的, 除非原来的分支里面就有这个分支. 需要先使用:git push origin  xxx ...

  3. dfs(首尾字母)

    http://acm.hdu.edu.cn/showproblem.php?pid=1181 变形课 Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  4. [常用类]时间内Date、SimpleDateFormat、Calendar类

    Date类的概述是util包下的,不能导入sql包的.* 类 Date 表示特定的瞬间,精确到毫秒. *构造方法 * public Date() * public Date(long date) 如果 ...

  5. Python的魔法方法??

    就是可以给你的类增加魔力的特殊方法,如果你的对象实现 (重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而这一切都是自动发生的. __in ...

  6. EOJ Monthly 2019.2 E. 中位数 (二分+dfs)

    题目传送门 题意: 在一个n个点,m条边的有向无环图中,求出所有从1到n 的路径的中位数的最大值 一条路径的中位数指的是:一条路径有 n 个点, 将这 n 个点的权值从小到大排序后,排在位置 ⌊n2⌋ ...

  7. Python内建函数enumerate()用法及在for循环应用

    Python 内建函数enumerate() 由于这个单纯很长,不容易记住,用法还是比较广泛的,下面讲述Python内建函数enumerate()用法. 1,实例 enumerate(sequence ...

  8. JEECG 深度使用培训班 周六周日公开课(一期班)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/25411023 广大技术爱好者:     ...

  9. asp.net 几种传值方法的分析

    本文转自:http://www.cnblogs.com/shengtianlong/archive/2010/08/11/1797608.html ASP.NET页面传值方法的优缺点及适用范围 1. ...

  10. JavaScriptDOM对象和jQuery对象的互相转换

    前言: 首先我们思考能不能直接在jQuery对象上调用原生DOM对象的方法或者直接在原生DOM对象调用jQuery对象呢?答案是否定的,我们看下把body背景色变为红色的代码: $("bod ...