首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

ThinkPHP 頁面跳轉 success 與 error 方法完整詳解

     編輯:PHP 綜合知識

方法簽名與參數

success($message = '', $ajax = false)
error($message = '', $ajax = false)
參數說明
$message提示訊息(選填)
$ajax是否 AJAX 請求,預設 false。若 true 則呼叫 ajaxReturn() 回傳 JSON

基本用法範例

<?php
public function insert() {
    $Dao = M('User');
    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>');
    }
}

成功/失敗模板變數

預設使用 Tpl/Public/success.html,可接收變數:

變數說明預設值
$waitSecond等待秒數success: 1, error: 3
$jumpUrl跳轉目標 URL$_SERVER['HTTP_REFERER']
$msgTitle操作標題語言包 _OPERATION_SUCCESS_/_OPERATION_FAIL_
$message提示訊息傳入的 $message
$status狀態碼1=成功, 0=失敗

jumpUrl 設定技巧

<?php
// 本模組其他方法
$this->assign('jumpUrl', 'index');

// 帶參數
$this->assign('jumpUrl', 'index/section/' . $section);

// 跨模組
$this->assign('jumpUrl', '__APP__/User/index');

// 使用 U 方法(需修改模板)
// 模板中:
// <meta http-equiv='Refresh' content='{$waitSecond};URL={:U($jumpUrl)}'>
// 控制器賦值需對應 U 方法格式

自訂 Error 模板

預設 error 同用 success.html。若需區分,修改配置:

<?php
// ThinkPHP/Common/convention.php 或專案配置
'TMPL_ACTION_ERROR' => 'Public:error',  // 指向 Tpl/Public/error.html

redirect 重導向對比

方法適用場景特點
success/error需提示訊息、延遲跳轉輸出模板、支援 AJAX 自動切換
redirect無需提示、直接跳轉HTTP 302、效能較好

模板客製化建議

  • 複製 Tpl/Public/success.html 至專案 Tpl/Public/ 覆蓋
  • 加入 CSS 動畫、進度條、響應式佈局
  • 區分成功/失敗視覺風格(綠/紅、圖示)
  • 支援 $ajax 時回傳 JSON 供前端 Vue/React 處理
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved