天天看點

【轉】ThinkPHP頁面跳轉success與error方法,PHP

ThinkPHP 頁面跳轉

ThinkPHP 提供了 success 與 error 方法用于帶提示資訊的頁面跳轉,如添加資料後顯示提示資訊并跳轉等。success 方法用于操作成功後的提示,error 用于操作失敗後的提示,二者使用方法完全一緻,下面以 success 方法來進行說明。

========================================================================

success 方法

success 方法文法如下:

success(message, ajax)

參數說明message可選。頁面提示資訊。ajax可選。是否 AJAX 方式送出,預設為 false 。

如果是 AJAX 方式送出的話,success 方法會調用 ajaxReturn 方法傳回資訊,具體參看《ThinkPHP AJAX》。

success 方法執行個體public function insert(){ // 省略部分其他代碼 if($lastInsId = $Dao->add()){ // 頁面跳轉目标位址 $this->assign("jumpUrl","index"); $this->success("插入資料 id 為:$lastInsId"); }else{ header("Content-Type:text/html; charset=utf-8"); exit($Dao->getError().' [ <A HREF="javascript:history.back()">返 回</A> ]'); }}success 模闆

success 方法預設調用公共目錄即 TPL/Public/ 下的 success.html 模闆。在該模闆中,接收如下模闆變量:

模 闆變量說明$waitSecond跳轉等待時間,機關為秒,預設 success 1 秒,error 3 秒。$jumpUrl跳轉目标頁面位址,預設為 $_SERVER["HTTP_REFERER"] (本操作前一頁)。$msgTitle操作标題。注:指派該變量不會生效,success 會取語言包裡 _OPERATION_SUCCESS_ 配置資訊,error 取 _OPERATION_FAIL_ 配置資訊。$message頁面提示資訊。$status操作狀态,預設 1 表示成功,0 表示失敗,具體還可以由項目本身定義規則。

success 實際仍是調用 display() 方法輸出 success.html 模闆。是以可以根據實際情況對 success.html 模闆進行修改如添加更多資訊提示或者進行 CSS 美工設定等以滿足實際需求,上面這些模闆變量隻是一些參考變量。

$jumpUrl 變量說明:

$jumpUrl 變量如果不存在,預設跳轉位址是 $_SERVER["HTTP_REFERER"] ,一些常見的跳轉頁面寫法參考:

// 本子產品其他方法如 index 方法$this->assign("jumpUrl","index");// 帶上參數$this->assign("jumpUrl","index/section/".$section);// 其他子產品$this->assign("jumpUrl","__APP__/User/index");

如果要使用 U 方法生成跳轉目标位址,可在 success.html 中變更 URL 屬性為 U 方法形式:

<meta http-equiv='Refresh' content='{$waitSecond};URL={:U($jumpUrl)}'>

在操作中,對 $jumpUrl 模闆變量的指派,相應的也要更改為與 U 方法一緻,詳細參見:《ThinkPHP U 方法動态生成 URL 位址》。

=======================================================================

error 方法

error 方法用法與 sucess 方法完全一緻,隻是需要注意的是,ThinkPHP 預設配置 error 方法調用的仍是 success.html 模闆。如果需要對 error 方法單獨定義模闆,可以修改系統預設配置 ThinkPHP/Common/convention.php 檔案:

'TMPL_ACTION_ERROR' => 'Public:success', // 預設錯誤跳轉對應的模闆檔案

或在項目配置裡進行重新定義,具體參見《ThinkPHP 項目配置 》。

Web 開發中,在需要頁面跳轉并顯示提示資訊時,可以直接使用 ThinkPHP 頁面跳轉提供的上述 success 與 error 方法。如果不需要提示而是直接重定向頁面時,請參閱《ThinkPHP redirect 重定向 》。