/**
* ----------------------------------------------
* 操作成功跳转的快捷方法
* @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;
}

yii2自定义json格式success,error跳转的更多相关文章

  1. Nginx 高级配置-自定义json格式日志

    Nginx 高级配置-自定义json格式日志 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在大数据运维工作中,我们经常会使用flume,filebeat相关日志收集工具取收集日志 ...

  2. 自定义Json格式

    老铁们都知道,一般的json格式就是键值对格式,在一些特定的框架或者系统中,会用到自定义格式的json文件,假设我们要得到的特定格式json格式如下: {"A":"2&q ...

  3. JqGrid 自定义子表格 及 自定义Json 格式数据不展示

    项目第一次使用JqGrid ,发现功能强大,但由于对他不熟悉,也没有少走弯路,记录一下. 1.引用 <link href="~/Scripts/JqGrid/jqgrid/css/ui ...

  4. Django-choices字段值对应关系(性别)-MTV与MVC科普-Ajax发json格式与文件格式数据-contentType格式-Ajax搭配sweetalert实现删除确认弹窗-自定义分页器-批量插入-07

    目录 models 字段补充 choices 参数/字段(用的很多) MTV与MVC模型 科普 Ajax 发送 GET.POST 请求的几种常见方式 用 Ajax 做一个小案例 准备工作 动手用 Aj ...

  5. ECharts访问后台,JSON格式返回数据实例

    完成图 一.页面代码 <%@ page language="java" contentType="text/html; charset=UTF-8" pa ...

  6. ajax发送json格式与文件数据、django自带的序列化器(了解)

    上期内容回顾 聚合查询和分组查询 # 聚合查询 max min sum avg count # 查询关键字:aggregate from django.db.models import Max, Mi ...

  7. Gson实现自定义解析json格式

    客户端跟服务器交互的时候我们使用json实现 但是 在交互的时候除了传送json对象数据意外 我们还需要传输标志位等 比如我们现在的交互方式格式 对象 { "data": { &q ...

  8. $.ajax返回的JSON格式的数据后无法执行success的解决方法

    近段时间做项目,在项目使用了ajax技术,遇到了一个奇怪的问题:"$.ajax返回的JSON格式的数据无法执行success",代码是这样写的: 1 $.ajax({ 2 .. 3 ...

  9. Jquery Ajax的时候 老是返回到 error,是因为json格式不正规的原因

    Jquery Ajax的时候 老是返回到 error,是因为json格式不正规的原因: 怪不得不执行,原来我返回的是{success:true,id:1} 这种不规则的字符串,不是严格的json格式, ...

随机推荐

  1. httpclient和htpUrlConnection用例

    使用了很久框架,突然不知道,原生访问网络请求方式,回过头去看,还好,对现在流行使用okhttp也有了更深体会. HttpURLConnection介绍: HttpURLConnection是一种多用途 ...

  2. 牛客练习赛17 C 操作数(组合数+逆元)

    给定长度为n的数组a,定义一次操作为: 1. 算出长度为n的数组s,使得si= (a[1] + a[2] + ... + a[i]) mod 1,000,000,007: 2. 执行a = s: 现在 ...

  3. python+selenium环境安装

    目前 selenium 版本已经升级到 3.7了,网上的大部分教程是基于 2.x写的,所 以在学习前先要弄清楚版本号,这点非常重要.本系列依然以 selenium2 为基础, 目前 selenium3 ...

  4. 检测Android手机的IP地址

    package com.jason.demo.androidip; import android.content.Context; import android.net.DhcpInfo; impor ...

  5. This system is not registered with an entitlement server. You can use subscription-manager to register.

    错误信息 [root@bogon apache-tomcat-]# yum install gcc-c++ Loaded plugins: product-id, search-disabled-re ...

  6. vue-awesome-swiper轮播的使用

    一.安装vue-awesome-swiper npm install vue-awesome-swiper --save 二.引入插件 main.js里面分别引入(记得有些电脑要引入样式) impor ...

  7. 9.Mysql字符集

    9.字符集9.1 字符集概述 字符集就是一套文字符号及其编码.比较规则的集合. ASCII(American Standard Code for Information Interchange)字符集 ...

  8. 富文本编辑器--FCKEditor 上传图片

    FCKEditor的最新版本已经更改名称为CKEditor: 1.在页面引入fckeditor目录下的fckeditor.js <script type="text/javascrip ...

  9. Thrift.0

    0. Thrift的特性 1. 安装Thrift编译器 [Todo] http://thrift.apache.org/docs/install/ http://thrift.apache.org/d ...

  10. Eclipse 安装使用 M2Eclipse 插件

    help --> Install New Software --> Add 安装完后需要重启eclipse 通常 Eclipse 会自带 Maven.但可能按自己安装的 Maven 存在版 ...