thinkphp页面跳转(successerror)如何设置跳转等待时间-php程序员的笔记

来源: thinkphp页面跳转(successerror)如何设置跳转等待时间-php程序员的笔记

thinkphp 3.1.2 模板跳转等待的时间默认只有3秒,这在开发中如果想看错误信息的时候是非常让人头痛的,虽然可以在页面显示的通过 $this->assign(‘waitSecond’,’1′) 自定义页面跳转等待时间,但总会感觉很麻烦,有没有一种方法可以将这个默认的3秒改的时间更长点吗?下面就教你如何将这个时间定义为你想要等待多长的时 间,在 thinkphp 3.1.2 中,在系统目录里面的 \Lib\Core\ 找到 Action.class.php 这个文件,在里面找到下面 dispatchJump 这个方法,找到 $this->assign(‘waitSecond’,’3′ 将里面的 3 改掉即可。

/**
 * 默认跳转操作 支持错误导向和正确跳转
 * 调用模板显示 默认为public目录下面的success页面
 * 提示页面为可配置 支持模板标签
 * @param string $message 提示信息
 * @param Boolean $status 状态
 * @param string $jumpUrl 页面跳转地址
 * @param mixed $ajax 是否为Ajax方式 当数字时指定跳转时间
 * @access private
 * @return void
 */
private function dispatchJump($message,$status=1,$jumpUrl='',$ajax=false) {
	if(true === $ajax || IS_AJAX) {// AJAX提交
		$data           =   is_array($ajax)?$ajax:array();
		$data['info']   =   $message;
		$data['status'] =   $status;
		$data['url']    =   $jumpUrl;
		$this->ajaxReturn($data);
	}
	if(is_int($ajax)) $this->assign('waitSecond',$ajax);
	if(!empty($jumpUrl)) $this->assign('jumpUrl',$jumpUrl);
	// 提示标题
	$this->assign('msgTitle',$status? L('_OPERATION_SUCCESS_') : L('_OPERATION_FAIL_'));
	//如果设置了关闭窗口,则提示完毕后自动关闭窗口
	if($this->get('closeWin'))    $this->assign('jumpUrl','javascript:window.close();');
	$this->assign('status',$status);   // 状态
	//保证输出不受静态缓存影响
	C('HTML_CACHE_ON',false);
	if($status) { //发送成功信息
		$this->assign('message',$message);// 提示信息
		// 成功操作后默认停留1秒
		if(!isset($this->waitSecond))    $this->assign('waitSecond','1');
		// 默认操作成功自动返回操作前页面
		if(!isset($this->jumpUrl)) $this->assign("jumpUrl",$_SERVER["HTTP_REFERER"]);
		$this->display(C('TMPL_ACTION_SUCCESS'));
	}else{
		$this->assign('error',$message);// 提示信息
		//发生错误时候默认停留3秒
		if(!isset($this->waitSecond))    $this->assign('waitSecond','3');
		// 默认发生错误的话自动返回上页
		if(!isset($this->jumpUrl)) $this->assign('jumpUrl',"javascript:history.back(-1);");
		$this->display(C('TMPL_ACTION_ERROR'));
		// 中止执行  避免出错后继续执行
		exit ;
	}
}
分享到: 更多 (0)