2009-11-12 154 views
2

我有一個擁有PHP代碼的頁面網站。一旦用戶按下「發送」,這會將信息發送到我的電子郵件,然後顯示一個消息框,說明該操作對用戶來說是成功的 - 非常棒。HTML重定向到原始頁面

消息框關閉後,網站停留在website.com/report.php。有沒有辦法將它重定向回原始頁面。

此外,任何方式來更改彈出的消息框中的圖標?這裏是我有的代碼: <script language="JavaScript">alert("Your request has been sent. I will contact you soon!");</script>

謝謝。

回答

4

。看看window.openwindow.location

放置在您的警報()

http://www.tizag.com/javascriptT/javascriptredirect.php

此外,要回答你的消息框圖標的問題後:沒有,它是依賴於瀏覽器,而不是修改。

如果你想這樣做,你將需要用html/css和javascript來僞造它。

+0

確保爲那些沒有JavaScript的優雅降級。你不希望一個非JS的用戶卡在一個空白的頁面:) – BStruthers 2009-11-12 22:19:38

+0

雖然我完全避免使用JavaScript,但是你唯一的一個(到目前爲止)在他提出如何重定向時不建議使用標題位置發送完頁面內容後。 – 2009-11-12 22:32:58

+0

,並導致使用定時延遲的自動重定向,而不使用JavaScript檢查中繼標記http-equiv =「refresh」 2009-11-12 22:37:54

0

使用PHP header命令

<?php 
header("Location: http://www.example.com/"); 
exit; 
?> 
+0

不錯,你打敗我到它15秒。 – 2009-11-12 22:09:04

+0

此方法不會顯示警報。 – 2009-11-12 23:17:25

-1

對你的PHP結束,使用此:

header('location: home.php'); 

這將導致瀏覽器加載原來的頁面。

我不相信標準警報框可以改變,除了消息。你也不能改變標題或按鈕。

弗蘭克

+1

此方法不會顯示警報,或者不會實際重定向。標題將在頁面內容(和警報JS)發送之前導致頁面被重定向而沒有提示,或者如果頁面內容已經在標題設置之前發送,則標題將不起作用。 – 2009-11-12 22:30:24

+0

啊,我假定第一頁觸發警報,而不是處理腳本。我想他可以緩衝輸出......但這聽起來像比'alert()'後面的'window.location()'更麻煩。 – 2009-11-12 23:22:31

+0

如[header](http://php.net/header)的PHP手冊頁所述,必須在任何其他輸出之前使用它。 – Jocelyn 2012-09-19 15:54:40

0

做一個重定向在PHP中,使用header("Location: page.php");這一點。在此之前和之後,您的代碼不應該發送任何其他輸出到響應。之後最終使用exit();來終止腳本。

如果您需要在此頁面之前請求的頁面,那麼您最好能做的就是將其URL作爲report.php鏈接的請求參數,並將其用作重定向目標。例如。

<a href="report.php?referrer=<?php echo $_SERVER['REQUEST_URI']; ?>">report</a> 

,並在report.php把它作爲隱藏的輸入字段:

<input type="hidden" name="referrer" value="<?php echo getParam("referrer"); ?>"> 

並提交報告後做:

header("Location: " . getParam("referrer") . ")"; // getParam() returns sanitized GET parameter. 

另一種方法是使用$_SERVER['HTTP_REFERER']頭(是的,包括錯字),但這並不可靠,因爲它可能會被客戶禁用或欺騙。

1
<script language="JavaScript"> 
alert("Your request has been sent. I will contact you soon!"); 
window.location.assign("http://website.com"); 
</script> 

如果要更改圖標的警告框或者使它看起來有點花哨,你可以嘗試YUI dialog

0

我相信一個更優雅的解決方案是簡單地用一個確認頁面呈現給用戶(而不是一個警告框),並在那裏放置一個鏈接到上一頁。

這將在所有用戶的工作。

對於那些使用javascript的用戶,一個小Ajax(jQuery)可以爲你提交表單,並顯示確認消息。所有這些都不會離開用戶所在的頁面(無需任何奇特的重定向)。

1

使用此代碼顯示警報:

function displayAlert(message, redirect) { 
    alert(message); 
    window.location.href = redirect; 
} 

然後,你可以使用如下代碼:

displayAlert("This is the message", "http://redirect.the/user/here");