IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Retour en arrière JavaScript


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut Retour en arrière JavaScript
    Bonjour à tous !

    Je souhaiterai faire un retour en arrière après que l'utilisateur clique sur un lien href donc dans mon href il y a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    javascript:history.go(-1)
    le problème est que lors du retour en arrière quand je clique sur href chrome me demande d'actualiser la page pour renvoyer les données du formulaire.
    Donc ma question est comment lors du clique sur le href réactualiser automatiquement (éviter à l'utilisateur d'actualiser manuellement) la page précédente pour récupérer les résultats du formulaire.

    Des idées ?

    Respectueusement
    ritchy99.

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Points : 628
    Points
    628
    Par défaut
    Salut

    Heu désolé, j'ai répondu un peu vite
    En fait j'ai pas compris si tu veux réactualiser la page ou la page précédente.
    Sinon si tu as un problème tu ne peux pas mettre le nom de la page précédente directement ? dans le Href.

    Tu as essayé aussi history.back() ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    je veux actualiser la page précédente qui contient le résultat d'un formulaire et concernant le history.back() je n'arrive pas à le faire fonctionner quand je remplace la fonction chrome affiche "historyback not found" et cette fonction permet d'actualiser la page précédente?

    Respectueusement,
    ritchy99

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Points : 628
    Points
    628
    Par défaut
    c'est normal tu as oublié le point

    Si ça marche pas essaie :
    ça

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 123
    Points : 54
    Points
    54
    Par défaut
    désoler erreur de frappe donc l'erreur est "not found history.back()"

    peut être que le code est faux ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href:"history.back()"> retour résultat recherche </a>
    sinon concernant le lien que tu m'as passé ce code va permettre de faire quoi ? et où le mettre?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.Expires = 0;
    Response.Cache.SetNoStore();
    Response.AppendHeader("Pragma", "no-cache");
    p.s.: désoler je suis débutant..

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Points : 628
    Points
    628
    Par défaut
    On s'est croisé, regarde mon post ...

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 123
    Points : 54
    Points
    54
    Par défaut
    je viens d'éditer mon ancien message car je ne comprends pas ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.Expires = 0;
    Response.Cache.SetNoStore();
    Response.AppendHeader("Pragma", "no-cache");

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Points : 628
    Points
    628
    Par défaut
    Non, c'est moi qui ai foiré, ce code que tu comprends pas est de l'ASP

    Essayer history.go(-2) ça te ramenera à la page qui se trouve avant le remplissage du formulaire.
    l
    Essaye aussi de rajouter ça à ta page du formulaire :

    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
    <meta http-equiv="Expires" content="0" />
    Une autre au cas où :
    <?php
    @session_start();
    $_SESSION = array();
    unset($_SESSION);
    @session_destroy();
    ?>

  9. #9
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    merci pour ta réponse donc plus d'erreur avec chrome en me demandant d'actualiser la page pour renvoyer les données du formulaire mais j'arrive sur un formulaire vierge.
    donc je pense qu'il faut rester avec un -1 pour revenir sur la page de résultat non ? sachant que quand je suis avec go-1 j'arrive sur la page de résultat que si j'actualise je retrouve tous mes objets .. peut être il existe un code pour l'action "F5" ?


    Explication sur le site :
    Mon site dispose d'un formulaire pour effectuer une recherche dans la base de données, donc quand on arrive sur la feuille de résultat où tous les éléments sont listés l'utilisateur clique sur un élément pour accédé à sa fiche et il me faudrait donc un lien pour renvoyer à la liste de résultat avec tous les objets trouvés par la recherche.


    Peut-être c'est plus clair maintenant ?

  10. #10
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Points : 628
    Points
    628
    Par défaut
    Oui pour l'action F5 c'est window.location.reload()

    Ah je vois ce que tu veux faire, dans ce cas, pourquoi faire une fiche dans une nouvelle page ?
    Tu peux faire apparaitre un div et le remplir avec les données de la fiche peut-etre ?

    PS: Je dois sortir, je repasserais voir...

  11. #11
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    je préfère que mon résultat sois sur une page différente et donc l'action windows.location.reload() je dois m'en servir comment ? et la mettre dans quelle page à quel endroit ... ?

    Désoler encore je débute en js...

  12. #12
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Points : 628
    Points
    628
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    windows.location.reload()
    Sert à rafraichir la page où elle se trouve.
    ça revient au même que de faire F5.

    Il suffit de la placer à l'endroit de la page où tu veux lancer la réactualisation de la page.

    En fait je viens à peine de pijer ce que tu veux faire, j'étais à coté de la plaque, désolé c'est à cause de l'heure et mon état, mais je resume :

    Tu veux revenir à la page précédente mais sans que le navigateur te demande d'accepter le renvoie de données afin qu'il puisse afficher la page précédente contenant un formulaire rempli.

    Ce que je sais du navigateur c'est qu'il va voir dans le cache si tu reviens en arrière, et pour éviter ça et le forcer à passer par le serveur il y a une astuce que je n'ai jamais essayé mais que j'avais dans mes cartons, je l'avais trouvé sur le net.
    Il s'agit d'envoyer un parametre sur la ligne d'adresse que tu utilise pour revenir en arrière, et dés qu'il voit le paramètre, le navigateur passe par le serveur au lieu de passer par le cache.

    Le problème c'est que ça ne marche pas avec history.go() car cette fonction ne reçoit pas de paramètres.
    La seule solution que je vois ce serait de connaître l'url de la page précédente et ainsi tu pourrais l'appeler avec l'astuce cité plus haut :

    Par exemple :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="url de la page précédente?a=2">page precedente</a>

    Si ça ne marche pas à tous les coups, il faudra alors mettre une valeur aléatoire à la place du 2.

    EDIT :

    Je viens de te trouver un exemple : Ici

    Mais pour l'exemple de l'adresse prend plutôt mon exemple car lui utilise une image, le principe est le même mais c'est pour pas que tu sois perdu.

  13. #13
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    A noter tout de même qu'il n'existe pas d'objet windows en JavaScript !
    C'est l'objet window qu'il faut utiliser, bien qu'il soit implicite et donc optionnel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    window.location.reload();
    location.reload();

  14. #14
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    et bien merci pour votre aide mais non cela ne fonctionne toujours pas ... il n'y a pas possibilité de mettre en place une page avec une condition si le navigateur demande de renvoyer les données du formulaire alors exécuter window.location.reload() ? car je n'ai plus d'idée là ...

  15. #15
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Il y a plusieurs solutions à ce problème ... Comment empêcher la re-soumission des données d'un formulaire si on actualise la page, ou lors d'un retour en arrière dans l'historique ..

    - Tu passes par la méthode get plutôt que post ...
    - Tu fais une redirection une fois que tu as traité les données postées (stocke en SESSION ces données pour les conserver si besoin de les ré-afficher dans le formulaire)

    Pour la redirection, soit du JS comme dit au dessus. Soit en PHP :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    header('HTTP/1.1 303 See Other');
    header('Location: ton_script.php');
    exit;

  16. #16
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    quel est l'intérêt de passer par la méthode get ?

    Concernant la méthode SESSION, le fait d'avoir un espace membre gérer avec la méthode SESSION ne posera pas problème?

  17. #17
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    L'intérêt c'est de pouvoir préremplir le formulaire via un simple lien donné (c'est comme ça que google fonctionne par exemple https://www.google.fr/?q=developpez )

    $_SESSION['formulaire'] par exemple pour récupérer l'ensemble des éléments.

  18. #18
    Membre à l'essai
    Homme Profil pro
    Urbaniste
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    petite question hors sujet mais dans l'attribut action de mon form j'ai une adresse sous cette forme : index.php?page=page2 donc pour que la fonction get fonctionne index.php?page=page2&...=...
    or là ça affiche index.php?...=...

    donc ma question comment rajouter ce "&" ?

    et deuxième question comment récupérer toute les données dans session["formulaire"] ? car je n'ai encore pas encore eu l'occasion de travailler avec des url donc je ne sais même pas comment la récupérer ...



    Cordialement.

  19. #19
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Tu combines les deux solutions là.
    - Soit tu passes le formulaire en method="get" et du coup tu n'as plus à te soucier des re-soumissions en cas de F5 ou history.back.
    - Soit tu laisses les données en method="post". Au traitement, tu prends chaque variable, tu les stocks en SESSION puis tu rediriges.
    index.php?page=page2 donc pour que la fonction get fonctionne index.php?page=page2&...=...
    or là ça affiche index.php?...=...

    donc ma question comment rajouter ce "&" ?
    tu mets ta variable page dans le formulaire en type="hidden"
    comment récupérer toute les données dans session["formulaire"] ?
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ( isset([$_POST['ma_variable']) ) {
      $_SESSION['formulaire']['ma_variable'] = $_POST['ma_variable'];
      // etc
    }

  20. #20
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Points : 628
    Points
    628
    Par défaut
    A noter tout de même qu'il n'existe pas d'objet windows en JavaScript

    Erreur de frappe par habitude de windows...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Javascript comment faire le retour en arrière
    Par bozykely3 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/07/2007, 16h39
  2. Retour en arrière?
    Par Ryuuku dans le forum Visual C++
    Réponses: 7
    Dernier message: 20/03/2007, 19h23
  3. retour chariot en javascript ?
    Par daniel_gre dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/11/2006, 16h53
  4. Possibilité de retour en arrière ?
    Par Ganak dans le forum Windows XP
    Réponses: 5
    Dernier message: 28/10/2006, 10h16
  5. [FTP]Retour en arrière
    Par aDamas dans le forum Réseau/Web
    Réponses: 2
    Dernier message: 21/02/2006, 16h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo