Retour à la page précédente

Bae
Invité n'ayant pas de compte PHPfrance

26 juin 2005, 18:08

Bonjour à tous,

Je suis actuellement face à un épineux problème.

J'ai une page qu'on supposera très longue. En bas de cette page, j'ai un lien qui pointe vers un script php.
Ce script php fait un accès à une base de données en écriture puis lance la méthode header pour le retour à la page précédente :
header("Location: ".$_SERVER['HTTP_REFERER']);
Cependant quand je me retrouve sur ma page précédente, celle-ci a été remise au tout début et non pas à ma position précédente (donc la méthode header n'a pas eut le même effet que si j'avais appuyé sur "Précédent" sur mon navigateur).

Avez-vous une solution pour pouvoir faire un retour à la page précédente à la position où je me trouvais ?

Autre solution sinon : comment faire en sorte qu'un lien html puisse lancer une requête SQL et rafraîchir la page courrante (dont les données dépendent du contenu de la base) ?

Merci d'avance pour vos réponses...

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 juin 2005, 18:37

tu peux utiliser une ancre et faire la redirection vers la page et cette ancre

pour la deuxième question c'est un peu le même problème si je comprend bien
tu cliques sur ton lien, cela t'envoie vers un script qui exécute son code/requête SQL puis redirige vers la page d'appel, qui affichera les bonnes données

Invité
Invité n'ayant pas de compte PHPfrance

27 juin 2005, 01:26

Yep j'ai pensé à mettre une ancre mais ça n'est pas une solution très satisfaisante pour mon cas. En fait il faut surtout qu'il y ait une écriture en base et un rafraichissement de la page mais sans que ça soit désagrable pour l'utilisateur (si l'écran passe son temps à faire des sauts vers l'ancre, ça risque d'être aussi pénible qu'un retour en haut de l'écran).

Ma deuxième question correspond au même problème mais à un autre type de solution : au lien d'envisager de passer par un fichier intermédiaire et un retour à la page précédente, voir s'il n'était pas plutôt possible d'exécuter directement une requête SQL et un rafraichissement de la page sans faire appel à un autre fichier.

Je cherche surtout une solution à mon problème, peu importe la mise en oeuvre (tant que ça reste faisable assez facilement) : je veux pouvoir cliquer sur un lien html et que ça mette à jour le contenu de la page en cours après avoir fait une écriture et relecture dans une base de donnée, tout cela sans avoir l'écran qui "saute" que ce soit en haut du fichier ou à l'ancre la plus proche.

ViPHP
pjl
ViPHP | 2119 Messages

27 juin 2005, 09:10

En javascript alors.
Regarde du coté d'AJAX.
En HTML pur et dur, tu ne pourras pas.

Eléphant du PHP | 191 Messages

27 juin 2005, 16:43

essaye ça.......
echo"<a href='javascript:history.go(-1)'>Revenir à la page précédente</a>";
:)
tu as la splendeur d'un enterrement de première class e

Bae
Invité n'ayant pas de compte PHPfrance

27 juin 2005, 18:37

Le history.back() ou history.go() ne rafraichit pas la page, il ne fait qu'un retour arrière (c'est là tout le problème, il n'y a rien qui permettent de faire un retour arrière + un rafraichissement, c'est soit une redirection vers la page précédente, soit un retour arrière, ce qui est différent).

Eléphant du PHP | 80 Messages

27 juin 2005, 19:50

Hello

Tu pourrais faire

Code : Tout sélectionner

<script type="text/javascript"> windows.location=history.go(-1); </script>
:roll: non?

Je m'y connais pas bien en javascript mais bon...

a+
Merci à tous!

Invité
Invité n'ayant pas de compte PHPfrance

27 juin 2005, 23:17

Le history.go() ne rafraichit pas la page, donc ça ne prendrait pas en compte les modifications apportées à la base de données par l'insertion.

Eléphant du PHP | 80 Messages

28 juin 2005, 10:23

Je sais, mais tu peux faire un rafraichissement en javascript et comme adresse tu met le history.go! Le history.go renvoie une adresse, tu peux utiliser cette adresse pour faire une redirection.
J'ai quand même fait une faute dans mon script, suite à la lecture de ce cours, j'ai fait ceci:

Code : Tout sélectionner

<script type="text/javascript"> h = history.go(-1); document.location.replace(h); </script>
a+

Edit: Ne maîtrisant pas du tout le javascript, mon code est certainement faux (erreur de syntaxe,...), mais le principe devrait être bon...
Merci à tous!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

30 juin 2005, 11:46

Tout simplement en JAVA -->

<a href="javascript:history.back()">Page Précédente</a>

:wink:
:evil: Le JAVA est différent du JavaScript :evil:

Le Java est un langage développé par Sun qui peut être utilise pour faire des applicatif internet alors que le JavaScript est un langage qui fonctionne associé à l'HTML

mais

JAVA != JAVASCRIPT
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

30 juin 2005, 16:49

du calme :langue:

je croit que maintenant on le saura........ :wink:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

30 juin 2005, 17:00

du calme :langue:

je croit que maintenant on le saura........ :wink:
Si tu savais le nombre de fois où il faut le répeter ... :cry:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 34 Messages

11 juil. 2005, 07:16

Bjs,

Moi aussi je suis interessé de faire un retour en arriere + rafraichissement de la page.
On peut faire comment alors ? :oops:
http://www.racegamers.com
Championnat offline sur tous les jeux de sport mecanique

arto
Invité n'ayant pas de compte PHPfrance

12 août 2005, 10:52

Bonjour,
*fait remonter un post vieu d'un mois, désolé*

Je viens de créer un ptit script php me permettant d'afficher une image dans le centre de ma page (centre / bas). Cette image est un aggrandissement d'une image (d'un aperçu de l'image) située dans un tableau à gauche.
Je clique sur ma photo, et par méthode $_GET je récupère l'adresse de la photo et la restitue dans mon tableau central en rafraichissant la page.
Jusque là, tout va bien pour un newbi comme moi.
Sauf que j'aimerais que lorsque ma page se rafraichit, elle se positionne sur l'aggrandissement de ma photo. J'ai essayé d'utiliser une ancre, mais apparement, combiné à la méthode $_GET, ca ne marche pas.
Voici les URL que j'ai testé :

Code : Tout sélectionner

"mapage.php?photo=1#photo"
Le résultat est assez... comment dire... surprenant :p. Le premier clique rafraichit ma page en insérant l'aggrandissement de la photo. Mais pour se positionner à mon ancre, l'utilisateur doit recliquer sur ce même lien.

Voilà; j'ai cherché un peu partout, rien trouvé. Alors je découvre qu'ici, le problème est légèrement similaire. Donc si vous avez trouvé solution(s) à ce problème, je serais heureu d'en bénéficier. Sinon tant pis, et désolé pour ce message à longueur ^^.

Merci
Arto