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

当我们做动态页面时,我们会发现一个网站的头部和尾部是相同的,那么我们如何用tp框架来做模板呢 ?

先看一下注意事项:

(1)每个区块由<block></block>标签组成

(2)子模板中使用extend标签继承模板

(3)注释语法:{/* 注释内容 */ } 或 {// 注释内容 } 

一、看一下基本的模板继承

(1)先做出模板页面  Ceshi/View/Main/base.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<!--放标题-->
		<title><block name="bt">标题</block></title>
		<style>
			*{padding: 0px;margin: 0px;}
			#head{width: 100%;height: 100px;background-color: azure;}
			#foot{width: 100%;height: 100px;background-color: gray;}
		</style>
		<!--用于放js、css样式-->
		<block name="tou"></block>
	</head>
	<body>
		<div id="head">
			 <h1>这是头部</h1>
			 <!--从数据库读取数据-->
			<foreach name="arr" item="vo" >
				<span>{$vo.name}</span>
			</foreach>
		</div>
		<!--这是需要依据页面变化的内容-->
		<block name="nr"></block>

		<div id="foot">
			 <h1>这是尾部</h1>
		</div>
	</body>
</html>

  (2)做操作方法Ceshi/Controller/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("users");
   		$arr = $m->select();
   		$this->assign("arr",$arr);
   	}

}

  (3)做子页面   Ceshi/View/Main/test.html

<!--调用模板-->
<extend name="base" />

<block name="bt">子页面</block>
<block name="tou">
	<style type="text/css">
		#nr{width: 100%;height: 400px;background-color: yellow;	}
	</style>
</block>
<block name="nr">
	<div id="nr">
		<h1>我是中间内容</h1>
	</div>
</block>

  效果图(样式有点简单)

注意事项:当模板页面有链接数据库的数据时怎样做

(二)举例:删除和修改

(1)先做显示页面    Ceshi/View/Main/mains.html

<extend name="base" />
<block name="bt">shanchu</block>
<block name="tou">
	<style type="text/css">
		/*#nr{width: 100%;height: 400px;background-color: yellow;	}*/
		#aa{height: 400px;width: 100%;background-color: yellow;}
	</style>
</block>
<block name="nr">
	<div id="aa">
	<table width="100%" border="1" cellpadding="0" cellspacing="0">
		<tr>
			<td>代号</td>
			<td>书名</td>
			<td>单价</td>
			<td>库存</td>
			<td>时间</td>
			<td>操作</td>
		</tr>

		<!--name表示数组名称  item表示遍历出来的每一个小数组-->
			<foreach name="attr" item="v" >
		<tr>
			<td>{$v.bkid}</td>
			<td>{$v.bkname}</td>
			<td>{$v.bkprice}</td>
			<td>{$v.bkstock}</td>
			<td>{$v.time}</td>
			<!--用get方式传值-->
			<td><a href="__CONTROLLER__/del/bkid/{$v.bkid}">删除</a>
			<a href="__CONTROLLER__/update/bkid/{$v.bkid}">修改</a></td>
		</tr>
			</foreach>

	</table>
</div>
</block>

  

(2)做操作方法Ceshi/Controller/MainController.class.php

<?php
namespace Ceshi\Controller;
use Think\Controller;
class MainController extends  Controller
{	

   	public  function mains(){
   		$m = M("book");
   		$arr = $m->select();
   		$this->assign("attr",$arr);
   		$this->show();
   	}

    public  function del($bkid){
    	//$bkid 以形参的方式传值
   		$m = M("book");
   		$url = U("mains");
   		if($m->delete($bkid)){
   			//第二个参数,表示返回的路径;第三个参数:表示停留时间
   			$this->success("删除成功",$url);
   		} else{
   			//不写第二个参数,默认返回上一个页面
   				$this->error("删除失败");
   		}
   	}

   	public  function update(){

   	  	$m = M("book");
   	  	//get方式取到值
   	  	$bkid = $_GET["bkid"];
   	  	$attr = $m->find($bkid);
   	  	//注册变量
   		$this->assign("attr",$attr);

   		if(empty($_POST)){

   			$this->show();

   		}else{
   			//自动获取表单数据
   			$m->create();
   			$m->save();

   		}
   	}

}

  (3)修改页面 Ceshi/View/Main/update.html

<extend name="base" />
<block name="bt">修改</block>
<block name="tou">
	<style type="text/css">
		#nr{width: 100%;height: 400px;background-color: yellow;}
	</style>
</block>
<block name="nr">
<form method="post" action="__ACTION__">
	<input type="hidden" name="bkid" value="{$attr.bkid}" /><br />
	书名:<input type="text" name="bkname" value="{$attr.bkname}" /><br />
	单价:<input type="text" name="bkprice"  value="{$attr.bkprice}"/><br />
	库存:<input type="text" name="bkstock"  value="{$attr.bkstock}"/><br />
	<input type="submit" value="修改"/>
</form>
</block>

  看一下效果:

点击删除bkid=33;

原页面bkid=33已经被删除

点击修改bkid=22;

点击修改提交数据,重新刷新页面,会发现单价和粗存已经被修改了

这样,tp框架的删除和修改就完成了,至于用ajax方式还是tp框架方式写,哪个更方便就用哪个呗~~~

时间: 2024-10-10 01:50:36

tp框架---View视图层---模板继承(举例说明)的相关文章

{{view 视图层}}微信小程序

微信小程序 view 视图层//自学 1.数据绑定 数据绑定 WXML中的动态数据均来自对应Page的data. 简单绑定 数据绑定使用"Mustache"语法(双大括号)将变量包起来,可以作用于: 内容 <view> {{ message }} </view> Page({ data: { message: 'Hello MINA!' } }) 组件属性(需要在双引号之内) <view id="item-{{id}}"> <

TP框架---Model模型层---做模型对象

TP框架----Model模型层---------------做模型对象 Model模型层是用来做什么的呢???? 主要是用来做操作数据库访问的. 也就说明TP框架自带了一种访问数据库的方式,使用的是Model模型. Model模型怎样使用呢??? 要使用Model模型层访问数据库的话,需要做配置,因为必须把数据库的一些参数配置好之后,才能连接,所以找到Config.php 配置文件,打开 这些是关于数据库的配置, 要把这些粘贴到config.php 进行修改. config.php配置文件(修

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

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

tp框架-----Model模型层

1.Model模型层是用来做什么的呢? 主要是用来做操作数据库访问的.也就说明TP框架自带了一种访问数据库的方式,使用的是Model模型. 2.Model模型怎样使用呢? 要使用Model模型层访问数据库的话,需要做配置,因为必须把数据库的一些参数配置好之后,才能连接,所以找到Config.php.    如何修改配置呢? 1)打开下图路径中的Convention.php文件 2)复制convention.php中的下图内容到Home/Conf/config.php中 3)修改配置,将自己的数据

4 Template层 -模板继承

阅读目录 1.模板继承 2.三层继承结构 3.实例 回到顶部 1.模板继承 模板继承可以减少页面内容的重复定义,实现页面内容的重用 典型应用:网站的头部.尾部是一样的,这些内容可以定义在父模板中,子模板不需要重复定义 block标签:在父模板中预留区域,在子模板中填充 extends继承:继承,写在模板文件的第一行 定义父模板base.html { %block block_name%} 这里可以定义默认值 如果不定义默认值,则表示空字符串 { %endblock%} 定义子模板index.ht

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<

Django框架学习----视图与模板(最新文章实现)

剩下的就是我们的最后一个功能了,最新文章的跳转 我们先在view.py里面定义一个接受最新五篇文章的变量 top5_article_list,并映射到index页面里面 最后只需要在index.html文件里面吧之前的所有文章的变量换成我们刚刚定义的top5_article_list就可以了 就此django入门结束了 原文地址:https://www.cnblogs.com/humiao-0626/p/12662994.html

Django框架学习----视图与模板(详情页的上下篇文章跳转跳转)

我们实现首页到详情页的跳转之后,接下来就是实现详情的上下篇文章的跳转 第一步:挑选按钮 把选中的按钮复制到我们的detail页面里面,并用一个div包含起来,如下图: 在上图中我定义了两个变量,他现在是不存在的,我们需要在views,py里面把这两个变量赋值之后并且映射过来.如下图: 写好之后重启一下你的项目,你的详情页就拥有了上下篇文章跳转功能了 原文地址:https://www.cnblogs.com/humiao-0626/p/12662555.html

关于TP框架的小知识

访问入口文件后在application文件夹中会出现一些文件夹,其中的home文件夹是前端模块,也可以在application文件夹中新建文件夹.home文件夹模块中Conf文件夹的config配置文件,是对于当前模块的:修改当前模式convention配置文件是对于全体的配置文件:整体的模式 一.MVC模式(把程序分成3层,也就是三层架构,核心是控制器也就是controller):M:model数据模型层 数据库的相关操作是放在model文件夹中V:view 视图层 模板文件C:control