zoukankan      html  css  js  c++  java
  • yii2自定义json格式success,error跳转

       /**
         * ----------------------------------------------
         * 操作成功跳转的快捷方法
         * @access protected
         * @param string $message 提示信息
         * @param string $jumpUrl 页面跳转地址
         * @param mixed $ajax 是否为Ajax方式 当数字时指定跳转时间
         * @return void
         * ----------------------------------------------
         */
        protected function success($message = '', $jumpUrl = '', $ajax = false)
        {
            $this->dispatchJump($message, true, $jumpUrl, $ajax);
        }
    
        /**
         * ----------------------------------------------
         * 操作错误跳转的快捷方法
         * @access protected
         * @param string $message 错误信息
         * @param string $jumpUrl 页面跳转地址
         * @param mixed $ajax 是否为Ajax方式 当数字时指定跳转时间
         * @return void
         * -----------------------------------------------
         */
        protected function error($message = '', $jumpUrl = '', $ajax = false)
        {
            $this->dispatchJump($message, false, $jumpUrl, $ajax);
        }
    
       /**
         * ----------------------------------------------
         * 默认跳转操作 支持错误导向和正确跳转
         * 调用模板显示 默认为public目录下面的success页面
         * 提示页面为可配置 支持模板标签
         * @param string $message 提示信息
         * @param bool $code 状态
         * @param string $jumpUrl 页面跳转地址
         * @param mixed $ajax 是否为Ajax方式 当数字时指定跳转时间
         * @access private
         * @return void
         * ----------------------------------------------
         */
        private function dispatchJump($message, $code = true, $jumpUrl = '', $ajax = false)
        {
            $jumpUrl = !empty($jumpUrl) ? (is_array($jumpUrl) ? Url::toRoute($jumpUrl) : $jumpUrl) : '';
            if (true === $ajax || Yii::$app->request->isAjax) {// AJAX提交
                $data = is_array($ajax) ? $ajax : array();
                $data['message'] = $message;
                $data['code'] = $code;
                $data['url'] = $jumpUrl;
                $this->ajaxReturn($data);
            }
            // 成功操作后默认停留1秒
            $waitSecond = 3;
    
            if ($code) { //发送成功信息
                $message = $message ? $message : '提交成功';// 提示信息
                // 默认操作成功自动返回操作前页面
                echo $this->renderFile(Yii::$app->params['action_success'], [
                    'message' => $message,
                    'waitSecond' => $waitSecond,
                    'jumpUrl' => $jumpUrl,
                ]);
            } else {
                $message = $message ? $message : '发生错误了';// 提示信息
                // 默认发生错误的话自动返回上页
                $jumpUrl = "javascript:history.back(-1);";
                echo $this->renderFile(Yii::$app->params['action_error'], [
                    'message' => $message,
                    'waitSecond' => $waitSecond,
                    'jumpUrl' => $jumpUrl,
                ]);
            }
            exit;
        }
    
       
        /**
         * ------------------------------------------------
         * Ajax方式返回数据到客户端
         * @access protected
         * @param mixed $data 要返回的数据
         * @return void
         * ------------------------------------------------
         */
        protected function ajaxReturn($data)
        {
            // 返回JSON数据格式到客户端 包含状态信息
            header('Content-Type:application/json; charset=utf-8');
            echo json_encode($data);
    
            exit;
        }
    
  • 相关阅读:
    简单地通过Python库使用python的socket编程
    js 实现继承的几种方式
    JAVA中获取当前系统时间
    IntelliJ Idea 常用快捷键列表
    关于报错:There is already 'xxxController' bean method的解决方法
    mysql 使用 GROUP BY 时报错 ERROR 1055 (42000)
    安装系统,用cmd进行分区
    Bootstrap关闭当前页
    bootstrap的日期选择器
    Bootstrap如何关闭弹窗
  • 原文地址:https://www.cnblogs.com/pcx105/p/7873199.html
Copyright © 2011-2022 走看看