快捷搜索:   nginx

tp5 修改自带success或error跳转模板页面

我们在用THINKPHP开发网站的过程中有时候经常会需要用到跳转的中间页面,这个时候可以用官方的$this->success(); 和$this->error();调用.

比如$this->success('成功条数:0,失败条数:1');

图片.png

是不是感觉很丑,所以我们来优化一下这个页面

首先翻看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>


顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论