web-dev-qa-db-fra.com

Retourner à la page précédente

J'utilise un formulaire pour "noter" une page. Ce formulaire "publie" des données sur un script php ailleurs. Je veux simplement afficher un lien après le traitement du formulaire qui ramènera l'utilisateur à la page précédente. Puis-je faire cela en utilisant JavaScript dans mon script php?

GF

35
Grunge Freak

Vous pouvez utiliser un lien pour appeler history.go(-1) en Javascript, ce qui revient essentiellement à cliquer sur le bouton Précédent. Idéalement, cependant, il serait préférable de simplement créer un lien vers l'URL d'où l'utilisateur a été posté sur le formulaire - de cette façon, le "flux" approprié d'historique est préservé et l'utilisateur ne se demande pas pourquoi il a quelque chose. cliquer sur "Transférer" à qui soumet à nouveau le formulaire.

82
Amber

Cela dépend de ce que vous essayez de faire. Vous pouvez utiliser quelque chose comme ceci: 

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

C'est l'option la plus simple. L’autre affiche a raison sur le fait que l’histoire se déroule correctement, mais c’est un exemple pour vous.

Juste édité, la version d'orig n'était pas en retrait et ressemblait à rien. ;)

32
dscher

Essaye ça:

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

en html:

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

Le code JavaScript initialisé en tant que solution de secours pour la variable HTTP_REFERER ne fonctionne parfois pas.

29
rahman

Vous avez spécifiquement demandé des solutions JS, mais si une personne visitait votre formulaire alors que JS était désactivé, une sauvegarde PHP est toujours valable:

lorsque le formulaire se charge, saisissez l'adresse de la page précédente via quelque chose comme $previous = $_SERVER['HTTP_REFERER'];, puis définissez-la en tant que <input type="hidden" value="$previous" /> dans votre formulaire. Lorsque vous traitez votre formulaire avec le script, vous pouvez saisir cette valeur et la coller dans la header("Location:___") ou coller l'adresse directement dans un lien pour le renvoyer d'où il vient.

Pas de JS, assez simple, et vous pouvez le structurer pour qu'il ne soit géré que si JS n'est pas activé sur le client.

23
Drew

Comme ça:

<?php

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

?>
13
super

Nous pouvons afficher un bouton Précédent en utilisant du code HTML dans nos pages, ce qui peut afficher la fenêtre du navigateur à la page précédente Cette page aura un bouton ou un lien et en cliquant dessus, le navigateur reviendra à la page précédente. Cela peut être fait en utilisant HTML ou en utilisant JavaScript dans le côté client. 

Voici le code de ce bouton

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

Utilisation de JavaScript

Nous pouvons utiliser JavaScript pour créer un lien nous ramenant à la page précédente ou à la page d’historique. Voici le code permettant de revenir en arrière dans le navigateur à l'aide de JavaScript côté client.

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

Si votre serveur Web redirige correctement vers une nouvelle page après avoir publié un message, le bouton "Retour" habituel du navigateur fonctionnera. Ou le "history.go (-1)" en javascript. Cela produira un formulaire rempli.

Cependant, si le serveur renvoie simplement un nouveau contenu sans rediriger, alors history.go (-1) ne vous aidera pas. À ce stade, vous avez perdu votre formulaire.

Si vous voulez simplement revenir à l'URL précédente, il vous suffit de la lier avec une balise A HREF. Cela vous montrera un formulaire vide.

3
drozzy

... En regardant le code Facebook ... j'ai trouvé ceci

 Go Back to Previous Page

2
BBeta

Je pense que le bouton onclick = "history.back ();" est un moyen de résoudre le problème.Mais cela pourrait ne pas fonctionner dans les cas suivants:

1.Si la page est actualisée ou rechargée. 2.Si l'utilisateur ouvre le lien dans une nouvelle page.

Pour surmonter ces problèmes, le code suivant peut être utilisé si vous savez à quelle page vous devez retourner. Par exemple. Si vous avez plusieurs liens sur une page et que le bouton Précédent doit être utilisé pour revenir à cette page.

<type d'entrée = "bouton" onclick = "document.location.href = 'nomfichier';" value = "Back" name = "button" class = "btn">

1
coder

Peut-être en retard pour cette réponse mais juste en HTML pur, vous pouvez toujours utiliser ./

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

0
Mathieu

history.go (-1) c'est une solution possible au problème, mais cela ne fonctionne pas en mode incognito car l'historique n'est pas maintenu par le navigateur dans ce mode.

0
hamza azeem