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 :

Modifier un setTimeout


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de Nimothenicefish
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 190
    Par défaut Modifier un setTimeout
    Bonjour, bonjour

    J'utilise un setTimeout pour actualiser ma page toute les 2secondes. J'ai utilisé un checkbox pour pouvoir le stopper et maintenant j'ai ajouter un champ pour que l'utilisateur puisse modifier le temps qui s'ecoule avant une nouvelle actualisation. Voici mon code :

    le script javascript dans le head :
    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
    <SCRIPT LANGUAGE="JavaScript">
    var minuterie;
    function InitRedir()
    	{ 
    		if (document.forms.yata.dmc.checked)
    		{
     
    			clearTimeout(minuterie);
    		}
    		else
    		{
    			minuterie = setTimeout("rediriger()", document.yata2.test.value);	//Je vais chercher la valeur que renvoie le formulaire yata2 pour le champ test, qui correspond au nombre de secondes 
    		}		
    	}
    function rediriger() 
    	{ 
    		if(document.formSuivant) //Si le bouton suivant existe alors exécuter le formulaire formSuivant
    		{
    			document.formSuivant.submit();
    		}
    		else 
    		{
    			document.formdebut.submit(); //sinon exécuter le formulaire formdebut
    		}
    	}
    	</SCRIPT>
    et les formulaires dans mon code php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    echo "<FORM NAME=yata>";
    	echo "<input type=checkbox name=dmc onclick=InitRedir()>";
    	echo "</FORM>";
    	echo "nombre de secondes : ";
    	echo "<FORM NAME=yata2>";
    	echo "<input type=text name=test size=10 value=1000>";
    	echo "<input type=submit value=Valider onclick=InitRedir()>";
    	echo "</FORM>";
    Mon problème étant que lorsque je clique sur le bouton valider ca reactualise bien ma page ms ca reprend la valeur initiale qu'il ya dans le champ de saisie. Donc j'ai pensé a utilisé une popup, mais je suis encore débutant en la matière, donc si quelqu'un pouvait m'expliqué la démarche à suivre..

    Merci

    Cordialement, Nimo

  2. #2
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Bonsoir

    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
     
    <?php
    if(isset($_GET['test'])) {
    $test = $_GET['test'];
    } else {
    $test = "1000";
    }
    echo "<FORM NAME=yata>";
            echo "<input type=checkbox name=dmc onclick=InitRedir()>";
            echo "</FORM>";
            echo "nombre de secondes : ";
            echo "<FORM NAME=yata2>";
            echo "<input type=text name=test size=10 value=$test>";
            echo "<input type=submit value=Valider onclick=InitRedir()>";
            echo "</FORM>";
    ?>
    Y'a put être plus simple mais comme cela çà à l'air de fonctionner.

  3. #3
    Membre confirmé Avatar de Nimothenicefish
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 190
    Par défaut
    Ce code marche, comme le mien, mais le problème est que la variable est transmise uniquement lors du clique sur le bouton valider, hors je voudrais qu'il soit également transmit automatiquement lors de chaque actualisation de la page

  4. #4
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    A quoi correspondent " document.formSuivant " et " document.formdebut " ?

  5. #5
    Membre confirmé Avatar de Nimothenicefish
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 190
    Par défaut
    C'est pour executer 2 formulaires, mais pas en tenir compte pour mon problème..
    Tout ce que j'aimerais savoir, c'est comment pouvoir garder une variable entre plusieurs actualisation de la page:

    J'ai une variable alpha, qui reste intact si l'utilisateur ne le change pas à travers le champ de saisi, cette variable est récupérer en javascript pour l'actualisation de la page.
    Si maintenant je change cette valeur, et que je réactualise la page avec cette nouvelle valeur. Par exemple, au depart il fallait 10sec. avant de reactualisé, maintenant l'utilisateur définit à 2sec. et bien ma page va réactualisé une 1ere fois à 2sec. avant de revenir à 10sec pour les suivantes.
    En bref, j'arrive pas à garder cette valeur plus d'une fois apres le clique sur le bouton valider

    Compliqué à expliquer comme ca...

  6. #6
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Un truc dans ce genre peut être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function rediriger() 
    	{ 
    	window.self.location.href="test.php?test=" + document.yata2.test.value;
    	}
    Dans la "function rediriger" j'ai indiquer ma page pour le rafraischissement donc test.php et j'indique ensuite la variable test avec la valeur quelle doit prendre

  7. #7
    Membre confirmé Avatar de Nimothenicefish
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 190
    Par défaut
    Non pas ainsi, car je definit le lien dans mon code PHP, et non en javascript. et je ne pense pas qu'il faille changer cela...
    J'ai essayé avec une variable de session mais celle-ci est supprimé lors de l'actualisation, et avec une fenetre popup, je sais pas trop comment m'y prendre
    Merci en tout cas d'essayer de m'aider..

  8. #8
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Montre la partie du code PHP ....

  9. #9
    Membre confirmé Avatar de Nimothenicefish
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 190
    Par défaut
    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
    if (!isset($_POST['nom']))
    	{
    		$_SESSION['variable'] = ""; // si on arrive sur la page pour la première fois on met la variable de la session à null
    	}
    	else
    	{
    		$_SESSION['variable']=$_POST['nom']; //Sinon on lui donne la valeur renvoyer par le formulaire et le champ "nom"
    	}
    	//formulaire avec un checkbox pour arreter la minuterie
    	echo "<FORM NAME=yata>";
    	echo "<input type=checkbox name=dmc onclick=InitRedir()>";
    	echo "</FORM>";
    	echo "nombre de secondes : ";
            //formulaire pour modifier le temps
    	echo '<form action="'.$page.'" method="post" name="yata2">';
    	echo '<input name=nom size=20 value="'.$_SESSION["variable"].'">';
    	echo '<input type="submit" value="Valider" onclick=InitRedir()>';
    	echo "</form>";
    Avec ce code, si on change le temps, et qu'une fois la page charger et la valeur du temps modifié, lors de la prochaine actualisation on va perdre cette donnée, car elle est renvoyé par le formulaire yata2, mais une actualisation n'a pas besoin que ce formulaire soit valider, et ne vas pas recupérer le $_POST['nom']

  10. #10
    Membre Expert
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Par défaut
    Bonjour,
    Après une bonne nuit de sommeil j'ai modifié comme ceci :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    <?php 
    // On démarre la session
    session_start();
     
    if (isset($_POST['test']))
    {
    $_SESSION['test'] = $_POST['test']; 
    } else {
    $_SESSION['test'] = $_SESSION['test'];
    }
     
    $test = $_SESSION['test'];
     
    $page ="test.php";
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Test</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
    <SCRIPT LANGUAGE="JavaScript" type="text/javascript">
    var minuterie;
    function InitRedir()
    	{ 
    		if (document.yata.dmc.checked)
    		{
     
    			clearTimeout(minuterie);
    		}
    		else
    		{
    			minuterie = setTimeout("rediriger()", document.yata2.test.value);
    		}		
    	}
    function rediriger() 
    	{ 
    window.self.location.href="test.php";
    	}
    </SCRIPT>
    </head>
    <body>
    <?php
     
            //formulaire avec un checkbox pour arreter la minuterie
            echo "<FORM NAME=yata>";
            echo "<input type=checkbox name=dmc onclick=InitRedir()>";
            echo "</FORM>";
            echo "nombre de secondes : ";
            //formulaire pour modifier le temps
            echo '<form action="'.$page.'" method="post" name="yata2">';
            echo '<input name=test size=20 value="'.$test.'">';
            echo '<input type="submit" value="Valider" onclick=InitRedir()>';
            echo "</form>";
    ?>
    </body>
    </html>
    Ce n'est peut être pas très académique mais çà à l'air de fonctionner.
    Dans la "function rediriger()" j'ai laissé modifié c'était juste pour faire le test de rafraichissement.

  11. #11
    Membre confirmé Avatar de Nimothenicefish
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 190
    Par défaut
    C'est une super solution, merci bcp
    Mais seul problème , obliger de fermer le navigateur pour effacer la variable de session et la remettre à sa valeur initiale
    Sinon, j'ai contourner le pb en utilisant un fichier texte, c'est moin "propre" mais ca marche ...

Discussions similaires

  1. Modifier la fonction setTimeout
    Par Manio 54 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 07/03/2011, 17h56
  2. Réponses: 5
    Dernier message: 27/11/2002, 14h08
  3. [VB6] Modifier la clé d'un élément d'une collection
    Par Ricou13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 14h49
  4. [VB6] [MDI] Modifier form en MDIform
    Par fikou dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 12/09/2002, 13h48
  5. Réponses: 5
    Dernier message: 06/08/2002, 20h08

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