Il y a 33 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

Javascript + php problème .... temps

 
n°42797
geotinc
Posté le 19-04-2006 à 14:43:24  profilanswer
 

Alors tout dabord bonjour à tous, j'ai quelque petite problème de javascript car je n'y connait pas grand chose. Je souhaite afficher un comtpe a rebour à partir d'une date. ce comtpe a rebour commencera lors du clique sur :
"activer" ==> le décompte commence et le le lien "arréter" apparaît
"arrèter" le compter s'arrète et le lien démarrer apparait.
je récupère le jour a partir laquelle on décomtpe a partir de mes mes variable php.
Enfin lorsque le comtpe à rebour = 0 je souhaite actualiser ma base de donné sql et réouvrir cette meme page ...
Voilà ce que j'ai commencer à faire :
 
<script>
 var cible = new Date(" <? echo $moi." ".$jour1.", ".$annee1." ".$heure1.":".$minute1.":".$seconde1; ?> " );
 var mms_an = 365 * 24 * 60 * 60 * 1000;
 var mms_jour = 24 * 60 * 60 * 1000;
 var mms_heure = 60 * 60 * 1000;
 var mms_minute = 60 * 1000;
 var mms_seconde = 1000;
 
function decompte()  
 {
 var aujourdhui = new Date();
 var change_a = -1;
 var change_j = -1;
 var change_h = -1;
 var change_m = -1;
 var diff_mms = cible.getTime() - aujourdhui.getTime();
 diff_annee = Math.floor(diff_mms / mms_an);
 diff_mms -= diff_annee * mms_an;
 diff_jours = Math.floor(diff_mms / mms_jour);
 diff_mms -= diff_jours * mms_jour;
 diff_heures = Math.floor(diff_mms / mms_heure);
 diff_mms -= diff_heures * mms_heure;
 diff_minutes = Math.floor(diff_mms / mms_minute);
 diff_mms -= diff_minutes * mms_minute;
 var diff_secondes = Math.floor(diff_mms / mms_seconde);
 
 document.all("decompte()" ).innerHTML = diff_heures + ':' + diff_minutes + ':' + diff_secondes;
 document.getElementById("decompte" ).innerHTML = diff_heures + ':' + diff_minutes + ':' + diff_secondes;
 setTimeout("decompte()",1000);
}
    function activate(isActive){
      if(isActive==true){
 document.getElementsByName("activate" )[0].style.display="none";
 document.getElementsByName("deactivate" )[0].style.display="block";
        decompte()
      }else{
 document.getElementsByName("deactivate" )[0].style.display="none";
 document.getElementsByName("activate" )[0].style.display="block";
 clearTimeout(tEnd);
      }
    }
   </script>  
 
Pour appeler mes fonction :  
echo '<td width="148"><div id="activate" name="activate" style="display: block;" onclick="activate(true);"> ';
    echo '<div align="center">Activer </div>';
    echo '</div>';
 echo '<div id="deactivate" name="deactivate" style="display: none;" onClick="activate(false);">';
    echo '<div id="decompte" name="decompte">';
    echo '</div>';
    echo 'Annuler';
    echo '</div>';
 echo '</td>';
 
Les problème que je rencontre :
je souhaite faire apparaître le temps de décompte en "dynamique" en text (pas dans des case de formulaire .. Voilà C'est super important dc si quelqu'un pouvait m'aider sa serait vraiment sympa voilà merci d'avance
Geoff

n°42798
Ashe
reenignE esreveR
Posté le 19-04-2006 à 14:51:30  profilanswer
 

C'est horrible de mettre des echo comme ca, tu pourrais au moins mettre un ?> ... <?php :p
 
Sinon

Code :
  1. document.all("decompte()" ).innerHTML = diff_heures + ':' + diff_minutes + ':' + diff_secondes;


Je vois pas trop ce que ca devrait faire
<div id="decompte" />
<script type="text/javascript">
...
document.getElementById('decompte').innerHTML = ...;
</script>


---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°42799
geotinc
Posté le 19-04-2006 à 14:54:52  profilanswer
 

Merci de ta rapiditè pour <? ?>, il y en a sinon il y orai un gros problème j'ai pas tout mis avant il y a des condition sur des variable en php.. Pour le reste en fait en javascript je patauge un peu pk ji connai rien et j'en ai absolument besoin
==> sa fait trois semaine que jmeprend la tete avec le javascript lol


Message édité par geotinc le 19-04-2006 à 14:57:06
n°42800
geotinc
Posté le 19-04-2006 à 14:59:19  profilanswer
 

En gros c'est ce code que je veux modifier pour l'afficher en text en non dans des champs (http://www.biblioscript.com/javascript/time_an2000.shtml#demo)
voilà

n°42802
Ashe
reenignE esreveR
Posté le 19-04-2006 à 15:09:36  profilanswer
 

Code :
  1. document.formulaire.annees.value = diff_annee;
  2. document.formulaire.jours.value = diff_jours;
  3. document.formulaire.heures.value = diff_heures;
  4. document.formulaire.minutes.value = diff_minutes;
  5. document.formulaire.secondes.value = diff_secondes;
  6. <input type="text" name="annees" size="2"> an
  7. <input type="text" name="jours" size="3"> jours
  8. <input type="text" name="heures" size="2"> heures
  9. <input type="text" name="minutes" size="2"> minutes
  10. <input type="text" name="secondes" size="2"> secondes avant Noël 2001 !


 
=>

Code :
  1. document.getElementById('annees').innerHTML = diff_annee;
  2. document.getElementById('jours').innerHTML = diff_jours;
  3. document.getElementById('heures').innerHTML = diff_heures;
  4. document.getElementById('minutes').innerHTML = diff_minutes;
  5. document.getElementById('secondes').innerHTML = diff_secondes;
  6. <span id="annees"></span> an
  7. <span id="jours"></span> jours
  8. <span id="heures"></span> heures
  9. <span id="minutes"></span> minutes
  10. <span id="secondes"></span> secondes avant Noël 2001 !


 
Note que le code de base avec le formulaire est deja pas trop juste
Sinon la ou j'ai mis des span tu peux mettre tout et n'importe quoi (des <a>, des <div>..)
Sinon en version + rapide
 

Code :
  1. document.getElementById('reste').innerHTML = diff_annee + ' an ' + diff_jours + ' jours ' + diff_heures + ' heures ' + diff_minutes + ' minutes ' + diff_secondes + ' secondes avant Noel 2001 !';
  2. <span id="reste"></span>


 
(sinon si possible utiliser value au lieu de innerHTML)


---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°42804
geotinc
Posté le 19-04-2006 à 15:30:34  profilanswer
 

Nikel merci bien le décompte marche correctement
par contre commen faire pour faire comme je l'ai dit plus haut activer/désactiver le décompte ? Merci beaucoup sa ma déjà permis de pas ma avancé

n°42805
Ashe
reenignE esreveR
Posté le 19-04-2006 à 15:34:33  profilanswer
 

Euh si tu gardes ton setTimeout (et le rappeler a chaque fois, ce qui n'est pas tres intelligent), il y a clearTimeout pour l'arreter
Sinon tu peux utiliser setInterval, ce qui sera probablement + precis de tt facon (et dans ce cas la c'est clearInterval pour l'arreter)


---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°42806
geotinc
Posté le 19-04-2006 à 15:34:45  profilanswer
 

Si cela peut t'aider je souhaite faire en gros comme dans ogame (je ne sais pas si tu connais) le décomtpe pour les batiment ba presque pareil.. Voilà merci

n°42807
Ashe
reenignE esreveR
Posté le 19-04-2006 à 15:36:09  profilanswer
 

Ben a mon avis t'as ecrit ton post en meme temps que le mien :p
(et j'ai jamais joue a ogame)


---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe
n°42811
geotinc
Posté le 19-04-2006 à 15:44:56  profilanswer
 

lol bon ba euh "tampis"
bon jvè essayer mais pour activer et désactiver il faut que je fasse comment ?
 
function activate(isActive){
      if(isActive==true){
 document.getElementsByName("activate" )[0].style.display="none";
 document.getElementsByName("deactivate" )[0].style.display="block";
       
      }else{
 document.getElementsByName("deactivate" )[0].style.display="none";
 document.getElementsByName("activate" )[0].style.display="block";
 clearTimeout;
      }
    }

 
Il faut que je rajoute quoi pour que le décompte saffiche et s'arrète. Désoler j'ai vraiment du mal (je le sais mais le javascript c'est pas mon domaine).

n°42813
Ashe
reenignE esreveR
Posté le 19-04-2006 à 15:50:51  profilanswer
 

iddutimeout = window.setTimeout( .. );
..
clearTimeout( iddutimeout );
 
(http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/cleartimeout.asp)


---------------
Globe trotter/SDF - Namur, Belgique
Joy, beautiful spark of the gods, Daughter of Elysium, We enter fire imbibed, Heavenly, thy sanctuary.
Trombi Matbe

Aller à :
Ajouter une réponse