web-dev-qa-db-ja.com

前のページに戻る

フォームを使用してページを「評価」しています。このフォームは、他の場所のphpスクリプトにデータを「投稿」します。フォームが処理された後、ユーザーを前のページに戻すリンクを表示したいだけです。私のPHPスクリプトでjavascriptを使用してこれを行うことはできますか?

GF

39
Grunge Freak

リンクを使用して、Javascriptでhistory.go(-1)を呼び出すことができます。これは、基本的に[戻る]ボタンをクリックするのと同じです。ただし、理想的には、ユーザーがフォームに投稿された場​​所からURLへのリンクを作成することをお勧めします。これにより、履歴の適切な「フロー」が保持され、ユーザーはなぜ何かを疑問に思うことはありません[転送]をクリックして、実際にフォームを再度送信します。

89
Amber

何をしようとしているかによって異なります。次のようなものを使用できます。

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

これが最も簡単なオプションです。他のポスターは、歴史の適切な流れを持つことについて正しいですが、これはあなたのための例です。

編集しただけで、オリジナルバージョンはインデントされず、何も見えませんでした。 ;)

33
dscher

これを試して:

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

hTMLで:

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

JavaScriptコードは、HTTP_REFERER変数のフォールバックが機能しないことがあるため初期化されます。

32
rahman

あなたは特にJSソリューションを要求しましたが、JSが無効になっている状態で誰かがフォームにアクセスした場合、PHPバックアップは常に素晴らしいです:

フォームが読み込まれたら、$previous = $_SERVER['HTTP_REFERER'];のようなものを介して前のページのアドレスを取得し、それをフォームの<input type="hidden" value="$previous" />として設定します。スクリプトでフォームを処理するとき、その値を取得してheader("Location:___")に固定するか、アドレスをリンクに直接固定して、元の場所に送り返すことができます

JSはなく、非常にシンプルで、クライアントでJSが有効になっていない場合にのみ処理されるように構造化できます。

24
Drew

このような:

<?php

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

?>
14
super

ブラウザウィンドウを前のページに移動できる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>
7
kiran kumar

Webサーバーが正しく redirects を投稿した後、新しいページに移動すると、ブラウザの通常の「戻る」ボタンが機能します。または、javascriptの「history.go(-1)」。これにより、記入済みのフォームが作成されます。

ただし、サーバーがリダイレクトせずに新しいコンテンツを返す場合、history.go(-1)は役に立ちません。その時点で、フォームを失いました。

単に前のURLに戻りたい場合は、A HREFタグを使用してリンクします。空のフォームが表示されます。

3
Andriy Drozdyuk

... Facebookのコードを見て...私はこれを見つけました

Go Back to Previous Page

2
BBeta

ボタンonclick="history.back();"は問題を解決する1つの方法だと思います。ただし、次の場合は動作しない場合があります。

  1. ページが更新または再読み込みされた場合。

  2. ユーザーが新しいページでリンクを開いた場合。

これらを克服するために、どのページに戻る必要があるかがわかっている場合、次のコードを使用できます。例えば。 1ページにリンクがなく、そのページに戻るために戻るボタンを使用する場合。

<input type="button" onclick="document.location.href='filename';" value="Back" name="button" class="btn">
1
coder

この答えに遅れるかもしれませんが、純粋なHTMLでは./を常に使用できます

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

0
Mathieu

history.go(-1)これは問題の可能な解決策ですが、このモードではブラウザーによって履歴が保持されないため、シークレットモードでは機能しません。

0
hamza azeem