Partage
  • Partager sur Facebook
  • Partager sur Twitter

afficher plusieurs décompte

Sujet résolu
    18 avril 2009 à 14:10:49

    Re bonjour,

    j'aimerais savoir comment faire pour afficher plusieurs décompte.
    En ce moment j'arrive à afficher 1 décompte mais quand je veu afficher 2 décompte ça m'en affiche que un seul et ça décompte 2 secondes par 2 secondes.

    Voici mon code.

    <?php       $recrutement = mysql_query("SELECT * FROM CMS_attente_recrutement WHERE pseudo = 'Djack69' ");
          while($recrutement1 = mysql_fetch_assoc($recrutement)) {  ?>
    <script type="text/javascript">
    var tps = <?php echo $recrutement1['temps_arrive']; ?>;
    var h= 0;
    var m= 0;
    var s= 0;
    var disp="";
    var idtimer =setInterval('affichetemps()',1000);
    
    function affichetemps(){
    
      tps-- ;
      h = parseInt(tps/3600) ;
      m = parseInt((tps%3600)/60) ;
      s = parseInt((tps%3600)%60) ;
      disp = (h<10 ? "0"+h : h) + ':' + (m<10 ? "0"+m : m) + ':' + (s<10 ? "0"+s : s) + ' h ';
      document.getElementById('<?php echo $recrutement1['id_recrutement']; ?>').innerHTML= disp;
    
       if ((h == 0 && s == 0 && m ==0)) {
       clearInterval(idtimer); 
    url="http://www.imagine-cms.com/world-money/index.php"  // Changer ici l'url
    Go(url)
    }
    }
    function Go(url) {
    //window.status="Go !"
    //document.s.Time.value="Go !"
    setTimeout("window.location=url", 400)
    }
    
       
    
    </script>	 
    <div id="<?php echo $recrutement1['id_recrutement']; ?>" style="font-family: arial; size: 76px;">
    </div>
    
    <?php } ?>
    
    • Partager sur Facebook
    • Partager sur Twitter
      19 avril 2009 à 19:06:36

      Je up pour peut être avoir une réponse!!!
      • Partager sur Facebook
      • Partager sur Twitter
        19 avril 2009 à 20:27:42

        Tu modifies toujours le même élément via innerHTML dans la fonction affichetemps().

        Première chose à faire serait de mettre l'identifiant de ton timer en argument de ta fonction :

        function affichetemps(idElementHtml){
        ...
        document.getElementById(idElementHtml).innerHTML= disp;
        ...
        }
        


        Il y a bien évidemment d'autres problèmes, notamment le fait que tu utilises les mêmes variables que tu modifies pour deux chronomètres différent mais ça c'est pas bien compliqué à déboguer.
        • Partager sur Facebook
        • Partager sur Twitter
          19 avril 2009 à 20:30:24

          Refais ta fonction sans variables globales... en les passant en arguments...
          Et rectifies tes setTimeout... en lisant ce tutoriel.
          • Partager sur Facebook
          • Partager sur Twitter
            19 avril 2009 à 21:46:38

            voici ce que j'ai fait mais ça ne m'affiche plus rien
            <?php       $recrutement = mysql_query("SELECT * FROM CMS_attente_recrutement WHERE pseudo = '".$_SESSION['membre_pseudo']."' ")or die(mysql_error());
                  while($recrutement1 = mysql_fetch_assoc($recrutement)) {  ?>
            <script type="text/javascript">
            var tps = <?php echo $recrutement1['temps_arrive']; ?>;
            var h= 0;
            var m= 0;
            var s= 0;
            var disp="";
            var idtimer =setInterval('affichetemps('<?php echo $recrutement1['id_recrutement']; ?>')',1000);
            
            function affichetemps('<?php echo $recrutement1['id_recrutement']; ?>'){
            
              tps-- ;
              h = parseInt(tps/3600) ;
              m = parseInt((tps%3600)/60) ;
              s = parseInt((tps%3600)%60) ;
              disp = (h<10 ? "0"+h : h) + ':' + (m<10 ? "0"+m : m) + ':' + (s<10 ? "0"+s : s) + ' h ';
              document.getElementById('<?php echo $recrutement1['id_recrutement']; ?>').innerHTML= disp;
            
               if ((h == 0 && s == 0 && m ==0)) {
               clearInterval(idtimer); 
            url="http://www.imagine-cms.com/world-money/index.php"  // Changer ici l'url
            Go(url)
            }
            }
            function Go(url) {
            //window.status="Go !"
            //document.s.Time.value="Go !"
            setTimeout("window.location=url", 400)
            }
            
               
            
            </script>	 
            <div id="<?php echo $recrutement1['id_recrutement']; ?>" style="font-family: arial; size: 76px;">
            </div>
            
            <?php } ?>
            
            • Partager sur Facebook
            • Partager sur Twitter
              19 avril 2009 à 22:48:53

              Si le problème est en javascript, donnes le javascript généré... et le PHP ne devrais être dans le javascript que vers la définition des variables...
              • Partager sur Facebook
              • Partager sur Twitter
                20 avril 2009 à 23:44:35

                je ne comprend pas se que tu veux dire
                • Partager sur Facebook
                • Partager sur Twitter
                  21 avril 2009 à 8:02:19

                  Actuellement, tu as ça :
                  <?php
                  $echo $masupervariabledelamortquitue.'iiswgjkonoik'.$vari;
                  ?>
                  <script type="text/javascript>
                  var nb='<?php echo $nb; ?>';
                  function truc(argument)
                  {
                  //blablabla
                  }
                  </script>
                  

                  Et moi je voudrait :
                  Actuellement, tu as ça :
                  contenudelasupervariableiiswgjkonoikcontenudelavariablevari;
                  <script type="text/javascript>
                  var nb='52';
                  function truc(argument)
                  {
                  //blablabla
                  }
                  </script>
                  

                  En gros, je veux plus voir de <?php ... donc tu affiches ta page et tu fais clic droit, afficher la source...
                  • Partager sur Facebook
                  • Partager sur Twitter
                    21 avril 2009 à 18:08:00

                    oui ok mais comment je fais pour avoir le temps via la base de donnée sans utiliser le php?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 avril 2009 à 9:48:25

                      Citation : xavier

                      Si le problème est en javascript, donnes le javascript généré... et le PHP ne devrais être dans le javascript que vers la définition des variables...



                      Les variables PHP ne posent pas de problèmes à la compréhension de l'algorithme.

                      leonne, pour ce qui est de ton code, on va garder à peu près la même structure.

                      tu vas d'abord créer un tableau javascript d'id de tes chronos (c'est le php qui te fera ça).

                      var tableauIdChronos = new Array();

                      <?php
                      
                      // Tu pourrais même utiliser un tableaux php
                      // Ca te permettrait de remplir ton tableau javascript
                      // grâce à une boucle
                      
                      echo "tableauIdChronos.push('".$identifiantChrono1."')
                      ";
                      echo "tableauIdChronos.push('".$identifiantChrono2."')
                      ";
                      
                      ?>
                      


                      Ensuite ton setInterval vas appeler une première fonction :

                      function boucleChrono() {
                      
                        // change les valeurs de disp, tps, h, m et s
                        decrementerTemps();
                      
                        for ( i = 0 ; i < tableauIdChronos.length ; i++ ) {
                      
                          document.getElementById(tableauIdChronos[i]).innerHTML = disp;
                        }
                      }
                      


                      decrementerTemps ne doit plus avoir la ligne avec le innerHTML.

                      Je suis parti du principe que tes chronos partaient au même moment et donc affichaient la même chose.

                      Si tel n'est pas le cas, tu as deux solutions :

                      Soit un tableau à deux dimensions (ou deux tableaux à une dimension :D)

                      [indexTableau][identifiantDOM]
                      [indexTableau][temps]

                      Soit un objet chrono qui stockera la même chose que ton tableau à deux dimensions ... mais c'est tellement plus fun l'objet ^^

                      +
                      • Partager sur Facebook
                      • Partager sur Twitter
                        22 avril 2009 à 16:10:23

                        En faîte je ne vois pas coment faire la boucle et ou mettre les codes js que tu as fais dans mon script.
                        Je ne connais vraiment pas beaucoup le javascript.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          24 avril 2009 à 7:36:13

                          je up pour qu'il y ai peut être une réponse.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            24 avril 2009 à 10:12:04

                            Ou tu peux essayer tout seul comme un grand ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                              24 avril 2009 à 13:45:02

                              tu me demande d'essayer mais je ne sais même pas ce qu'es un tableau javascript. Explique un peu plus stp. Surtout pour quelqu'un comme moi qui ne connais pas le javascript.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                24 avril 2009 à 13:48:05

                                Tu ne connais pas le JS ? Il n'est jamais trop tard pour apprendre. :D

                                Tadaaa !
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  24 avril 2009 à 13:53:26

                                  Ben justement avec un peu plus d'explication sa ira surment mieu ;)
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    24 avril 2009 à 13:54:35

                                    Golmote +1

                                    Moi je pensais que si tu faisais un décompte c'était justement pour apprendre à faire des trucs sympas en Javascript.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      24 avril 2009 à 18:16:24

                                      oui c'est pour apprendre a faire de nouvelle chose dynamique, c'est aussi pour avancer mon jeu, mais si vous ne m'expliquez pas je risque pas d'apprendre.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        26 avril 2009 à 11:44:52

                                        Bon a ce que je vois vous avez la fleme de m'expliquer . Pour contre pour trouver des lien et les mettre en trente secondes c est beaucoup plus simple pour vous. Moi qui croyais que c'étais un forum d'entraide j'ai du me tromper apparement.
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          26 avril 2009 à 11:59:09

                                          function moins(obj)
                                          {
                                          obj.nb++;
                                          if(obj.nb==obj.fin)
                                          {
                                          document.getElementById(obj.target).innerHTML='Fini !';
                                          }
                                          else
                                          {
                                          document.getElementById(obj.target).innerHTML=obj.nb;
                                          window.setTimeout(function(){moins(obj);},1000);
                                          }
                                          }
                                          function chrono(debut,fin,target)
                                          {
                                          this.nb=debut;
                                          this.fin=fin;
                                          this.target=target;
                                          if(!document.getElementById(target))
                                          {
                                          var div=document.createElement("div");
                                          div.setAttribute("id",this.target);
                                          document.body.appendChild(div);
                                          }
                                          return this;
                                          }
                                          moins(chrono(10,20,'div1'));
                                          moins(chrono(20,40,'div2'));
                                          


                                          Voilà le code.
                                          J'éspère que tu ne comprendras pas et que t'apprendras au lieu de gueuler parce que t'es pas foutu de lire un tutoriel...
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            26 avril 2009 à 23:05:23

                                            tu sais si c'étais pour me mettre en code sans annotation rien que pour me faire ... tu aurais peu t'abstenir. Je ne demandais pas grand chose pourtant, juste des explications concrètes sur ce que je voulais faire réellement. Je sais pas pourtant j'ai été polis et courtois quand j'ai ouvert se sujet.
                                            Enfin j'ai trouvé par mes propres connaissances comment il fallais faire .
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              26 avril 2009 à 23:17:04

                                              Pense à mettre ton sujet en résolu :euh: ... (lien en bas de page ;) )
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                26 avril 2009 à 23:38:54

                                                oui je pensais l'avoir fais désolé.
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  27 avril 2009 à 12:52:59

                                                  Citation : leonne

                                                  tu sais si c'étais pour me mettre en code sans annotation rien que pour me faire



                                                  Hum .. rappelez moi de jamais plus aider ce mec ... c'est xavier qui va être content :D .
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    27 avril 2009 à 16:48:11

                                                    Oui c'est très bien je n'ai pas eu besoin de ton aide apparement. Il a un membre qui ma expliqué le code que je voulais avec plein d'annotation. Il m'a fais un bout de code en m'expliquant et j'ai très bien réussi ce que je voulais faire. ;)
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter

                                                    afficher plusieurs décompte

                                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                    • Editeur
                                                    • Markdown