当前位置 博文首页 > thinkPHP5(TP5)实现改写跳转提示页面的方法

    thinkPHP5(TP5)实现改写跳转提示页面的方法

    作者:Leeyongbard 时间:2021-09-21 19:08

    本文实例讲述了thinkPHP5(TP5)实现改写跳转提示页面的方法。分享给大家供大家参考,具体如下:

    大家都知道Tp框架一直以来的执行成功和失败的页面都不是特别的好看,不过这样也给了开发者一个不错的选择我们可以根据自己的喜好去改写这个跳转提示的页面

    我使用的是Tp5框架,Tp5的跳转提示页面的改写和Tp3的有异曲同工之妙,首先还是先看一下Tp框架中自带的跳转提示页面的代码吧,我直接贴上了:

    {__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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <title>跳转提示</title>
     <style type="text/css">
      *{ padding: 0; margin: 0; }
      body{ background: #fff; font-family: "Microsoft Yahei","Helvetica Neue",Helvetica,Arial,sans-serif; color: #333; font-size: 16px; }
      .system-message{ padding: 24px 48px; }
      .system-message h1{ font-size: 100px; font-weight: normal; line-height: 120px; margin-bottom: 12px; }
      .system-message .jump{ padding-top: 10px; }
      .system-message .jump a{ color: #333; }
      .system-message .success,.system-message .error{ line-height: 1.8em; font-size: 36px; }
      .system-message .detail{ font-size: 12px; line-height: 20px; margin-top: 12px; display: none; }
     </style>
    </head>
    <body>
     <div class="system-message">
      <?php switch ($code) {?>
       <?php case 1:?>
       <h1>:)</h1>
       <p class="success"><?php echo(strip_tags($msg));?></p>
       <?php break;?>
       <?php case 0:?>
       <h1>:(</h1>
       <p class="error"><?php echo(strip_tags($msg));?></p>
       <?php break;?>
      <?php } ?>
      <p class="detail"></p>
      <p class="jump">
       页面自动 <a  href="<?php echo($url);?>" rel="external nofollow" >跳转</a> 等待时间: <b ><?php echo($wait);?></b>
      </p>
     </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>
    
    

    下面进行改写,首先css的东西都可以直接删掉,那个几乎没有什么作用,忘了说了我使用的替换的跳转提示的是layer插件,这个插件做的还是不错的,官网:http://layer.layui.com/,想看的请同志们左拐

    1.下载layer插件,进行解压,解压之后的文件包如下:

    解压之后包含这三个主要的文件,其中我们需要引入到文件中的是layer.js

    但是千万不要忘记引入了jquery.js

    然后大家看Tp原来的代码中几行比较重要的代码:

     <p class="success"><?php echo(strip_tags($msg));?></p>
    <?php echo($url);?>
    <?php echo($wait);?>
    
    

    这三点分别是提示信息,跳转路径,等待时间

    有了这几个就可以了,改写的时候使用隐藏域的手手法,利用隐藏域将需要获得信息通过jquery的形式获取,然后插入到下面的js中:

    <script type="text/javascript">
    (function(){
    layer.open({
      content: msg,
      yes: function(index, layero){
       //do something
       layer.close(index); //如果设定了yes回调,需进行手工关闭
      }
     });
     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>
    var msg = $('#msg').val(); 提示信息
    var url = $('#url').val();  跳转url
    var wait = $('#wait').val(); 等待时间
    
    

    改写后的js:

    <script type="text/javascript">
      (function(){
       var msg = $('#msg').val();
       var url = $('#url').val();
       var wait = $('#wait').val();
       layer.open({
        content: msg,
        yes: function(index, layero){
         //do something
         location.href = url;
         layer.close(index); //如果设定了yes回调,需进行手工关闭
        }
       });
      })();
     </script>
    
    

    这里我没有使用自动跳转,而是手动点击进行跳转,所以下面的计时器直接删除掉了,并不影响

    就这样改写成功了

    更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

    希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

    jsjbwy