2010-07-29 58 views
0

我想知道我可以如何解決這個問題: 我在我的網站上有很多表格。每當我提交一個按鈕,我想在下一頁上打印一條消息。當表單被提交時,頁面只是刷新。什麼是最簡單的方法或通常如何完成?PHP:打印成功或錯誤消息提交?

感謝您的幫助

回答

4

可能使用PHP會話和形式刷新前添加一個會話變量,然後檢索它的下一個頁面,顯示它並刪除它。

例如在您的重定向頁面

 
$_SESSION["message"] = "Success!"; 

然後在您的形式

 
if(isset($_SESSION["message"])) { 
    echo $_SESSION["message"]; 
    unset($_SESSION["message"]); 
} 

這是簡單的方法來做到這一點,我不喜歡這樣。您可能需要爲表單添加全局模板,以便您可以全局編輯第二個代碼。

如果您有不同的表單,並且您重定向到不是原始表單的頁面,則此方法很好,因此您可以在全局中顯示反饋消息。

0

可能使用$ _SESSION作爲吉米的建議。這將工作。

如果你想避免這種情況,那麼你在<form action=...頁面處理輸入。處理表單,決定它是否有效 - 在寫入任何輸出之前 - 然後輸出成功或失敗頁面。

如果需要構建輸出頁面,你要處理的表單輸入形式$_GET$_POST然後緩衝輸出(見http://php.net/manual/en/function.ob-start.php


P.S你是怎麼通過when a form is submitted the page simply refreshes是什麼意思?您再次看到相同的原始頁面?如果是這樣,請檢查<form action=...是否會引導您進入第二頁。

HTH

0

首先,我不會推薦使用空白動作。 反正......如果你正在使用它,那麼,當你正在處理你的表單數據,並檢查驗證時,你可以將所有的錯誤和成功消息存儲在一個數組中,然後如果這個動作是空白的,你只會得到他們在同一頁面(如果你不發送頁眉或重定向頁面),如果沒有,那麼你可以將該數組存儲在會話中,以便在下一頁中獲得它... 最後,你可以取消設置array

希望這會有所幫助。 謝謝。