tp5 修改自带success或error跳转模板页面
我们在用THINKPHP开发网站的过程中有时候经常会需要用到跳转的中间页面,这个时候可以用官方的$this->success(); 和$this->error();调用.
比如$this->success('成功条数:0,失败条数:1');
是不是感觉很丑,所以我们来优化一下这个页面
首先翻看tp5框架跳转页面的文件(TP3.2也是一样的)
成功和失败跳转的方法文件位置: /thinkphp/librarytrais/controller/Jump.php 这个文件中定义了error()和success()方法
成功和失败的默认模板页面文件位置:/thinkphp/tpl/dispath_jump.tpl 这个文件中是跳转页面的html代码,成功和失败页面放在一起了!(如果不需要改动位置,可以直接修改这个文件的样式就行了)
在公共配置文件中我们可以看到如下配置项
// 默认跳转页面对应的模板文件
'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',
'dispatch_error_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',
这个配置路径告诉我们,配置的跳转页面路径是: /thinkphp/tpl/dispath_jump.tpl
****项目公共配置文件位置:/application/config.php
根据tp5的配置规则:我们可以给前后台台配置各自的跳转页面!
第一步:我们先更改后台跳转页面配置路径,将页面放到后台的视图目录中 application/back/view/tpl/dispatch_jump.html
'dispatch_success_tmpl' => APP_PATH .'back' . DS.'view'. DS .'tpl' . DS . 'dispatch_jump.html',
'dispatch_error_tmpl' => APP_PATH .'back' . DS.'view'. DS .'tpl' . DS . 'dispatch_jump.html',
第二步:我们在application/back/view/tpl/路径中建文件dispatch_jump.html
第三步:写自己的跳转页面。注意此页面需要参考tp5的dispath_jump.tpl
tp5跳转页面中我们可以看到有$code 、$msg 、$url、$wait ,同时我们自己的样式代码也可以写在页面中
$code 是1 识别为用的success方法 为0则是error方法(在Jump.php中可以查看success和error方法)
$msg 是提示信息
$url 是跳转地址
$wait是跳转倒数秒数(默认为3)
所以我们需要保留放置这几个参数的html标签和js代码。下面给大家一个简单案例(TP5/TP3通用):
{__NOLAYOUT__}<!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 name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>跳转提示</title> <style type="text/css"> body, h1, h2, p,dl,dd,dt{margin: 0;padding: 0;font: 15px/1.5 微软雅黑,tahoma,arial;} body{background:#efefef;} h1, h2, h3, h4, h5, h6 {font-size: 100%;cursor:default;} ul, ol {list-style: none outside none;} a {text-decoration: none;color:#447BC4} a:hover {text-decoration: underline;} .ip-attack{width:100%; margin:200px auto 0;} .ip-attack dl{ background:#fff; padding:30px; border-radius:10px;border: 1px solid #CDCDCD;-webkit-box-shadow: 0 0 8px #CDCDCD;-moz-box-shadow: 0 0 8px #cdcdcd;box-shadow: 0 0 8px #CDCDCD;} .ip-attack dt{text-align:center;} .ip-attack dd{font-size:16px; color:#333; text-align:center;} .tips{text-align:center; font-size:14px; line-height:50px; color:#999;} </style> </head> <body> <div class="ip-attack"><dl> {if condition="$code eq 1" } <dt style="color: green"><?php echo(strip_tags($msg));?></dt> {else/} <dt style="color: red"><?php echo(strip_tags($msg));?></dt> {/if} <br> <dt> 页面自动 <a id="href" href="<?php echo($url);?>">跳转</a> 等待时间: <b id="wait"><?php echo($wait);?></b> </dt></dl> </div> <script type="text/javascript"> (function(){ var wait = document.getElementById('wait'), href = document.getElementById('href').href; var interval = setInterval(function(){ var time = --wait.innerHTML; if(time <= 0) { location.href = href; clearInterval(interval); }; }, 1000); })(); </script> </body> </html>
上面是TP5的,如果是TP3,需要将里面的
{if condition="$code eq 1" } <dt style="color: green"><?php echo(strip_tags($msg));?></dt> {else/} <dt style="color: red"><?php echo(strip_tags($msg));?></dt> {/if}
替换成
<if condition="$code eq 1" > <dt style="color: green"><?php echo(strip_tags($msg));?></dt> <else/> <dt style="color: red"><?php echo(strip_tags($msg));?></dt> </if>
- 最新评论