2010-03-30 95 views
29

我正在使用表單對頁面進行「評分」。這種形式將數據「發佈」到其他地方的PHP腳本。我只是想在表單處理後顯示一個鏈接,這會將用戶帶回上一頁。我可以在我的php腳本中使用javascript來做到這一點嗎?返回上一頁

GF

回答

72

您可以使用一個鏈接來調用history.go(-1)在Javascript中,基本上是等效於單擊後退按鈕。然而,理想情況下,最好是創建一個鏈接回到用戶發佈到表單的URL - 這樣,歷史的正確「流」就會被保留下來,用戶不會理解爲什麼他們有東西點擊「轉發」,其實只是再次提交表單。

+0

如何使用一個鏈接來調用一段JavaScript代碼? – 2010-03-30 20:50:20

+24

'link text here...' – Amber 2013-05-06 14:25:45

+4

link text here...在用戶通過清除緩存清除歷史記錄時不起作用... – user1400915 2013-10-27 13:43:25

3

如果您的網絡服務器正確redirects您發佈了一個新的頁面後,瀏覽器上的常規「後退」按鈕將工作。或者javascript中的「history.go(-1)」。這將產生一個填寫表格。

但是,如果服務器只是返回新的內容而沒有重定向 - 那麼history.go(-1)不會幫助你。那時你已經失去了你的形式。

如果您只是想回到前一個網址 - 只需鏈接到A HREF標記。這會向你顯示一個空的表單。

+0

無論Web服務器如何,PHP都可以生成重定向。 – 2010-03-30 20:51:03

+1

確實如此,但PHP在服務器上運行。我正在談論客戶端服務器,而不是在服務器上運行的軟件。 – drozzy 2010-03-30 20:52:24

30

取決於你想要做什麼。你可以用這樣的東西:

echo "<a href=\"javascript:history.go(-1)\">GO BACK</a>"; 

這是最簡單的選擇。另一張海報是正確的,有一個適當的歷史流,但這是你的一個例子。

剛剛編輯,orig版本沒有縮進,看起來沒有任何東西。 ;)

+0

@dscher完美的答案兄弟,我正在尋找這樣的事情,幸好找到了你的答案。 – V15HM4Y 2013-04-16 06:38:49

21

您明確要求JS的解決方案,但在事件有人訪問你的形式與JS禁用的PHP備份總是好的:

加載窗體時搶一樣$previous = $_SERVER['HTTP_REFERER'];通過一些以前的頁面地址,然後在您的表單中將其設置爲<input type="hidden" value="$previous" />。當您使用腳本處理表單時,您可以抓住該值並將其粘貼到header("Location:___")中,或直接將地址粘貼到鏈接中,以便將它們發送回來。

沒有JS,非常簡單,您可以將它組織起來所以只有當客戶端沒有啓用JS時才能處理它。

+0

HTTP_REFERRER是否容易受到注入攻擊?它似乎是。我喜歡它不依賴於JS,但尋找有效的URL似乎很麻煩。 JS版本對我來說更加安全。 – blindsnowmobile 2017-03-30 03:59:32

24

試試這個:

$previous = "javascript:history.go(-1)"; 
if(isset($_SERVER['HTTP_REFERER'])) { 
    $previous = $_SERVER['HTTP_REFERER']; 
} 
在HTML

<a href="<?= $previous ?>">Back</a> 

的JavaScript代碼是初始化作爲後備的HTTP_REFERER變量有時無法正常工作。

+2

我其實更喜歡你的答案!此解決方案將重定向,而不會彈出通知,提示「表單重新提交」或任何情況。 +1 – 2015-04-17 19:35:37

8

像這樣:

<?php 

    if (isset($_SERVER["HTTP_REFERER"])) { 
     header("Location: " . $_SERVER["HTTP_REFERER"]); 
    } 

?> 
5

我們可以在我們的網頁上可以採取瀏覽器窗口前一頁使用HTML代碼顯示後退按鈕。此頁面將有一個按鈕或一個鏈接,通過點擊它,瀏覽器將返回到上一頁。這可以通過使用html或在客戶端使用JavaScript來完成。

這裏是這個按鈕

<INPUT TYPE="button" VALUE="Back" onClick="history.go(-1);"> 

使用JavaScript

我們可以使用JavaScript來創建一個鏈接到帶我們回到以前的或歷史頁面的代碼。以下是使用客戶端JavaScript移回瀏覽器的代碼。

<a href = "javascript:history.back()">Back to previous page</a> 
1

我想按鈕onclick =「history.back();」是解決問題的一種方法。但在以下情況下可能無法正常工作:

1.如果頁面被刷新或重新加載。 2.如果用戶在新頁面中打開鏈接。

爲了解決這些問題,如果您知道必須返回哪個頁面,可以使用以下代碼。例如。如果您在一個頁面上沒有鏈接,並且要使用後退按鈕返回到該頁面。

< input type =「button」onclick =「document.location.href ='filename';」值= 「返回」 NAME = 「按鈕」 類= 「BTN」>

2

...通過查看Facebook的代碼...我發現這個

Go Back to Previous Page

0

也許遲到了這個答案,但只是在純HTML就可以送花兒給人使用./

<a href="./">Return</a>