zoukankan      html  css  js  c++  java
  • 页面跳转并提示的解决方案

    在页面处理成功之后,总要有个提示。这个时候不用ajax的话,就必须跳转到新的页面。同时有提示信息。

    我是的思路是,处理成功之后,获取到提示信息,和提示类型或成功或错误消息。

    $this->_redtest("1","success","/news/index/listmy");

    调用_redtest方法,传递三个参数,1表示成功消息。

    success表示提示内容,可以处理成相应的中文提示。

    之后的是连接地址。

    function _redtest($msgtype = false,$message = false, $url = false, $target = false) {
            $redurl = $url;
            if ($message)
                $param[] = 'message=' . $message;
            if ($msgtype)
                $param[] = 'msgtype=' . $msgtype;
            if ($target)
                $param[] = 'target=' . $target;
            if (count($param) > 0) {
                $redurl .= '?' . join('&', $param);
            }
            $this->_redirect($redurl);
            /*echo "<script type='text/javascript'>";  
            echo "window.location.href='$url'";  
            echo "</script>";  
            */
            exit;
        }

    完了之后,直接跳转到新的页面。

    新的页面对参数进行处理。

    /**消息提示begin*/
            $translate = Zend_Registry::get('Zend_Translate'); //引入翻译接口
            $message = $this->_request->getParam('message');
            $msgtype = $this->_request->getParam('msgtype');
            $reloadurl = explode('?', $_SERVER['REQUEST_URI']);
            $reloadurl = $reloadurl[0];
            $this->view_->assign('reloadurl', $reloadurl);
            $this->view_->assign('msgtype', $msgtype);
            $this->view_->assign('message', $translate->_($message));
            /**消息提示end*/

    并传递到tpl视图中。

    视图中获取到参数,并作出相应的效果。

    <!--消息提示-->
    <script>
    $(function(){
        var message = "<!--{$message}-->";
        var msgtype = "<!--{$msgtype}-->";
    
        if(message){
            if(msgtype){
                if(msgtype=="1"){
                    showMsg("msg",message,"2000");
                }else{
                    showMsg("errmsg",message,"2000");
                }
            }else{
                showMsg('msg',message,"2000");
            }
            reloadurl();
            //window.location = "<!--{$reloadurl}-->";
        }
    });
    
    function reloadurl()
    {
        var t=setTimeout("window.location = '<!--{$reloadurl}-->'",2000);
    }
    function showMsg(msgtype,msgcontent,time){
        $("#msgBoxDIV span").attr("class",msgtype).text(msgcontent); //获取提示信息并设置
        $("#msgBoxDIV").show();
        setTimeout(function () {
        $("#msgBoxDIV").hide();
        }, time);
    }
    
    </script>
    <div id="msgBoxDIV" style="position: absolute;  90%; padding-top: 2px; height: 24px; top: 75px; text-align: center; display:none;">
            <span class="msg"></span>
    </div>

    避免刷新会重复提示消息的方法。再次跳转。

    function reloadurl()
    {
        var t=setTimeout("window.location = '<!--{$reloadurl}-->'",2000);
    }

    效果如下:

  • 相关阅读:
    【转】Git: There is no tracking information for the current branch.
    【转】git多个远程仓库
    【转】python批量快速合并excel文件
    【转】HTML5-postMessage实现跨域
    Python3正则表达式search和findall差异讨论
    Python Segmentation fault错误定位办法
    Python3压缩和解压缩实现
    Python3+profile性能分析
    案例:ADG环境遇到redo日志member路径有误以及RMAN-6571错误
    CentOS7的udev的绑定规则
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/3498986.html
Copyright © 2011-2022 走看看