TP 頁面跳轉success 和 error 以及重定向功能

TP 系統的\Think\Controller類內置了兩個跳轉方法success和error,用於頁面跳轉提示,並且能夠支持ajax提交。javascript

 

$User = M('User'); //實例化User對象
$result = $User->add($data); 
if($result){
    //設置成功後跳轉頁面的地址,默認的返回頁面是$_SERVER['HTTP_REFERER']
    $this->success('新增成功', 'User/list');
} else {
    //錯誤頁面的默認跳轉頁面是返回前一頁,一般不須要設置
    $this->error('新增失敗');
}

success和error方法的第一個參數表示提示信息,第二個參數表示跳轉地址,第三個參數是跳轉時間(單位爲秒),例如:php

// 操做完成3秒後跳轉到 /Article/index
$this->success('操做完成','/Article/index',3);
// 操做失敗5秒後跳轉到 /Article/error
$this->error('操做失敗','/Article/error',5);

跳轉地址是可選的,success方法的默認跳轉地址是$_SERVER["HTTP_REFERER"],error方法的默認跳轉地址是javascript:history.back(-1);
默認的等待時間success方法是1秒,error方法是3秒html

 

successerror方法均可以對應的模板,默認的設置是兩個方法對應的模板都是:java

 

//默認錯誤跳轉對應的模板文件
'TMPL_ACTION_ERROR' => THINK_PATH . 'Tpl/dispatch_jump.tpl',
//默認成功跳轉對應的模板文件
'TMPL_ACTION_SUCCESS' => THINK_PATH . 'Tpl/dispatch_jump.tpl',

也可使用項目內部的模板文件ajax

//默認錯誤跳轉對應的模板文件
'TMPL_ACTION_ERROR' => 'Public:error';
//默認成功跳轉對應的模板文件
'TMPL_ACTION_SUCCESS' => 'Public:success';

success和error方法會自動判斷當前請求是否屬於Ajax請求,若是屬於Ajax請求則會調用ajaxReturn方法返回信息。 ajax方式下面,success和error方法會封裝下面的數據返回:thinkphp

 

 

$data['info']   =   $message; // 提示信息內容
$data['status'] =   $status;  // 狀態 若是是success是1 error 是0
$data['url']    =   $jumpUrl; // 成功或者錯誤的跳轉地址

 

 

重定向
Controller類的redirect方法能夠實現頁面的重定向功能。函數

redirect方法的參數用法和U函數的用法一致(參考URL生成部分),例如:ui

//重定向到New模塊的Category操做
$this->redirect('New/category', array('cate_id' => 2), 5, '頁面跳轉中...');

若是僅僅是想重定向要一個指定的URL地址,而不是到某個模塊的操做方法,能夠直接使用redirect函數重定向,例如:this

//重定向到指定的URL地址
redirect('/New/category/cate_id/2', 5, '頁面跳轉中...')

Redirect函數的第一個參數是一個URL地址。url

 

控制器的redirect方法和redirect函數的區別在於前者是用URL規則定義跳轉地址,後者是一個純粹的URL地址。

來自tp手冊

相關文章
相關標籤/搜索