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 :

History.back() ou history.go(-1)


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 10
    Points : 6
    Points
    6
    Par défaut History.back() ou history.go(-1)
    Bonjour

    Petit résumé de mon problème:
    Un utilisateur saisie une fiche avec une référence et d 'autre données. Lorsqu'il soumet la fiche je vérifie que le référence n'est pas déjà existante. Et si oui, je lui demande s'il veut l'écraser. Autrement je le renvoie au remplissage de la fiche.
    Je pensais faire ca avec une "confirm box" et un history.back(). Mais voila ca a parfaitement fonctionné pendant 2 jours, le temps que je m'occupe des autres pages et depuis "Niet"
    La fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script language="javascript">
    function confirm_replace($reference)
    {
    if(!confirm("La référence \"" +$reference+ "\" existe déjà. Voulez-vous la remplacer?")) {
    	history.back();}
     
    }
    	}
    </script>
    Le php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    //----------------debut de l'exécution du script------------------------------
    if (isset($_POST['reference']))
    	{
    	$reference=$_POST['reference'];
    	$requete = "select reference from occasion where reference like '".$reference."'"; // verification des doublons
    	$resultat = mysql_query ($requete);
    	$nb_reference = mysql_num_rows($resultat);
    	echo "il y a ".$nb_reference." occurence pour cette référence<br>";
     
    	if ($nb_reference==0)	//pas de doublon
    		{
    		write_data(); 
    		$erreur = upload_images();
    		if ($erreur_msg!="") ?>
    			<script language="javascript">upload_erreur('<?php echo $erreur_msg ?>')</script>	
    		<?php 
                    redirection();
                    }
            else    //doublon
                    {
            echo "confirmation de la presence du doublon<br>";
                    ?>
    		<script language="javascript">
    		confirm_replace('<?php echo $reference ?>')</script>
    		<?php 
    		echo "ecrasement de la référence précédente<br>";
    		overwrite_data();
    		$erreur = upload_images();
    		if ($erreur_msg!="")?>
    			<script language="javascript">upload_erreur('<?php echo $erreur_msg ?>')</script>	
    		<?php 
    		redirection();	
    		} 
    	}
    Je sais, ce n'est pas optimisé mais dans le principe il fonctionne. Les echo ne sont là que pour vérifier le déroulement du script.
    Le problème actuel est que même en cliquant sur "annuler" de la confirm box la suite du script php s'exécute et écrase les données précédentes.

    A noter que la fonction window.location interrompt le chargement de la page, renvoie l'ancienne mais sans les données bien sur.

    En fait ce problème ressemble beaucoup à d'autres qui ont été évoqués sur le fonctionnement pour le moins aléatoire de History.back() et history.go(-1). A savoir que ca fonctionne dans un premier temps, la page demandée se reaffiche bien avec les données précédement rentrées et que d'un coup, sans prévenir, ca ne marche plus.

    J'accepte toutes vos suggestions, mais j'avoue que je préfèrerais ne pas avoir a mettre toutes les données en variable de session ou dans une table temporaire d'autant que je suis même pas sur que ca arrangerait mes bidons.

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    je pense que cela peut provenir du cache... ??

    essaye plutot de donner un href avec un time stamp

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci pour ta réponse... Mais si tu pouvais développer... Je suppose que tu parles du cache du navigateur. Je l'ai vidé systématiquement a chaque opération. Quant a href et time stamp, je suis pas bien sur de voir ou tu veux en venir. Je suis pas du tout programmeur, je fait ca pour rendre service, et je ne connais que les fonctions de base de php et java

    Merci

Discussions similaires

  1. Vider history.back()
    Par FoxLeRenard dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/02/2006, 22h40
  2. problème avec history-back
    Par renaud26 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 18/01/2006, 08h18
  3. rafraichir apres un history.back
    Par Snivel dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/12/2005, 15h02
  4. history.back() et window.back(), IE et FF
    Par toome dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 04/11/2005, 14h49
  5. redirection history.back
    Par mr.t dans le forum ASP
    Réponses: 6
    Dernier message: 13/07/2005, 15h54

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