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 :

Petit compte à rebours avec PHP.


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Par défaut Petit compte à rebours avec PHP.
    Bonjour tout le monde,

    J'aimerais savoir pourquoi mon petit script codé, ne marche pas, je suis perdu je ne trouve pas de solutions, etant bien meilleur en PHP, ont ne peut pas tout connaiître, voiçi le code Javascript :

    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
     
    <html>
    <head>
    <script language="JavaScript">
    function Reste(Temp) {
    var Message = ''
    if (Temp>0) {
    Jour = Math.floor(Temp / (24*60*60));
    Temp -= Jour * (24*60*60);
    Heure = Math.floor(Temp / (60*60));
    Temp -= Heure * (60*60);
    Minute = Math.floor(Temp / (60));
    Temp -= Minute * (60);
    if(Jour > 0) {
    Message +=  Jour+'j ';
    } 
    if(Heure > 0) {
    Message +=  Heure+'h ';
    }
    if(Minute > 0) {
    Message +=  Minute+'m ';
    } 
    Message += Math.round(Temp)+'s';
    document.getElementById("Compteur").innerHTML = Message;
    setTimeout("Reste(<?php echo mktime(0, 0, 0, 9, 9, 2007) - time(); ?>)",1000);
    }
    else {
    document.getElementById("Compteur").innerHTML = "<a href='page.php'>Page</a>";
    }
    }
    </script>
    </head>
    <body>
    <div id="Compteur"></div>
    <script language="JavaScript">
    Reste('<?php echo mktime(0, 0, 0, 9, 9, 2007) - time(); ?>');
    </script>
    </body>
    </html>
    Voilà, donc j'apperçoit ce qui manque comme temp en Jour Heure et Minute, mais ce n'est pas en Live, le set Timeout(); ne va pas à priorit.

    Merci pour l'aide.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 89
    Par défaut
    Effectivement : c'est le setTimeout !
    Tu appeles toujours la même fonction (normal) avec le même paramètre (ce qui est moins normal !). Dans le setTimeout, appeles la fonction "Reste" mais avec comme paramètre "Temp - 1".

    Rappel : le code PHP n'est généré qu'une et une seule fois par page. Ton code PHP aura donc toujours la même valeur, à chaque appel de la fonction Reste !

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Par défaut
    Re,

    Merci oui un etourdissement pour le PHP sinon ça :

    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
    <html>
    <head>
    <script language="JavaScript">
    function Reste(Temp) {
    var Message = ''
    if (Temp>0) {
    Jour = Math.floor(Temp / (24*60*60));
    Temp -= Jour * (24*60*60);
    Heure = Math.floor(Temp / (60*60));
    Temp -= Heure * (60*60);
    Minute = Math.floor(Temp / (60));
    Temp -= Minute * (60);
    if(Jour > 0) {
    Message +=  Jour+'j ';
    } 
    if(Heure > 0) {
    Message +=  Heure+'h ';
    }
    if(Minute > 0) {
    Message +=  Minute+'m ';
    } 
    Message += Math.round(Temp)+'s';
    document.getElementById("Compteur").innerHTML = Message;
    setTimeout("Reste(Temp -1)",1000);
    }
    else {
    document.getElementById("Compteur").innerHTML = "<a href='page.php'>Page</a>";
    }
    }
    </script>
    </head>
    <body>
    <div id="Compteur"></div>
    <script language="JavaScript">
    Reste('<?php echo mktime(0, 0, 0, 9, 9, 2007) - time(); ?>');
    </script>
    </body>
    </html>
    Marche pas non-plus je vois que ca passe à 0 quand le set Timeout est appelée, donc ca affiche mon lien page.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 89
    Par défaut
    Effectivement, j'hésite toujours avec ces setTimeout !
    Voici ce qui devrait marcher (j'ai rapidement testé sous Firefox, ca marche) :
    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
    <html>
    <head>
    <script language="JavaScript">
    function Reste(Temp) {
    var Message = ''
    if (Temp>0) {
    Jour = Math.floor(Temp / (24*60*60));
    Temp -= Jour * (24*60*60);
    Heure = Math.floor(Temp / (60*60));
    Temp -= Heure * (60*60);
    Minute = Math.floor(Temp / (60));
    Temp -= Minute * (60);
    if(Jour > 0) {
    Message +=  Jour+'j ';
    } 
    if(Heure > 0) {
    Message +=  Heure+'h ';
    }
    if(Minute > 0) {
    Message +=  Minute+'m ';
    } 
    Message += Math.round(Temp)+'s';
    document.getElementById("Compteur").innerHTML = Message;
    setTimeout('Reste('+--Temp+')', 1000);
    }
    else {
    document.getElementById("Compteur").innerHTML = "<a href='page.php'>Page</a>";
    }
    }
    </script>
    </head>
    <body>
    <div id="Compteur"></div>
    <script language="JavaScript">
    Reste('<?php echo mktime(0, 0, 0, 9, 9, 2007) - time(); ?>');
    </script>
    </body>
    </html>
    Il faut sortir la variable Temp des guillemets lorsqu'on utilise setTimeout()

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Par défaut
    Bonjour,

    Ca marche peut être sans le PHP, en tout cas avec le PHP cela fait comme çi c'etait 0 donc ca affiche ma page.

    À mon avis il faudrait faire 2 fonctions, une qui soustrait et l'aure qui appel la fonction pour décompter.

Discussions similaires

  1. [XL-2003] Un petit compte à rebours ! ! ! Une boucle qui plante !
    Par toutoune95800 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/04/2012, 17h56
  2. [débutant] compte à rebours avec changement d'image
    Par ravid87 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/03/2011, 11h41
  3. Une histoire de compte à rebours (avec formulaire)
    Par Olivier14 dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 04/03/2009, 13h43
  4. Compte à rebours avec affichage
    Par shazad dans le forum Débuter
    Réponses: 18
    Dernier message: 11/12/2008, 15h38
  5. Compte à rebours avec Timer
    Par womannosky dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 13/06/2007, 18h33

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