yii2 html 跳转,阐述在Yii2上实现跳转提示页
序言
為了讓用戶有更加良好的體驗,在操作成功或者失敗后,來個提示并跳轉頁面,我就在Yii2上實現了這一個效果。在寫這個跳轉提示頁的時候,找資料我發現網上關于這方面的中文資料真的很少,大家也都共享下吧!
需求分析
1、用戶在操作成功或者失敗后,來個提示并跳轉頁面。
2、使用這種方式$this->success(),$this->error()調用(仿造Yii2自帶 $this->render()加載頁面的方式)。
效果圖
樣式有點丑,但是功能是好的,要是不喜歡這樣式大家可以自行美化一下!
代碼分析
1、在控制器的基類Controller.php里邊增加兩個方法,這么寫:
/**
* 通用成功跳轉
* @param unknown $url 成功后跳轉的URL
* @param number $sec 自動跳轉秒數
* @return Ambigous
*/
public function success($url= [] ,$sec = 3){
$url= empty($url)? ['/admin/main']: $url;
$url= \yii\helpers\Url::toRoute($url);
return $this->renderPartial('../base/msg',['gotoUrl'=>$url,'sec'=>$sec]);
}
/**
* 通用錯誤跳轉
* @param string $msg 錯誤提示信息
* @param number $sec
* @return Ambigous
*/
public function error($msg= '',$sec = 3){
return $this->renderPartial('../base/msg',['errorMessage'=>$msg,'sec'=>$sec]);
}
2、在loginviewsbase的下面建立一個命名為msg.php的頁面,代碼如下:
/* @var $this yii\web\View */
/* @var $name string */
/* @var $message string */
/* @var $exception Exception */
use yii\helpers\Html;
?>
<?php echo '
'.$errorMessage.'
';?>恭喜!操作成功!
該頁將在3秒后自動跳轉!
立即跳轉
返回上一頁
.page-none-alert{margin: 100px 0 !important;
text-align: center !important;
font-size: 30px !important;}
setInterval("history.go(-1);",<?php echo $sec;?>000);
setInterval("window.location.href='<?php echo $gotoUrl;?>'",<?php echo $sec;?>000);
3、完成以上步驟之后就可以在login模塊下的控制器里邊直接調用了,調用方式如下:
成功的調用方式: return $this->success(['/site/login']);
失敗的調用方式: return $this->error('數據修改失敗!');
常見問題
1、跳轉提示的JS寫在如下我注釋的地方了,寫在那的話就不起作用了,得寫在外面才行。
<?php $this->beginBlock('JUMP_JS')?>
(function(){
//跳轉提示的JS寫在這了。不能寫在這,寫在這里就不起作用了。
});
$this->endBlock();
$this->registerJs($this->blocks['JUMP_JS'],\yii\web\view::POS_END);?>
相關資料
總結
以上是生活随笔為你收集整理的yii2 html 跳转,阐述在Yii2上实现跳转提示页的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: esxi 修改服务器配置失败,R720服
- 下一篇: 舰r4月28服务器维护,崩坏3 11月2