Décompte en temps réel

Eléphant du PHP | 80 Messages

26 avr. 2006, 01:14

Bonjour tout le monde les gens :),

Je souhaiterais avoir de l'aide concernant le JS, car je ne m'en sors pas pour faire, à partir d'une variable en PHP que je récupère d'une base MYSQL (une variable qui est donc un timestamp futur).

J'ai vu la fonction Set timeout, mais je ne sais pas comment l'utiliser pour faire la liaison entre celle-ci et la variable PHP, et je voudrais également savoir si ce genre de code rallonge la durée d'affichage de la page de beaucoup. (En fait, je ne sais comment tester le temps exact en multipliant par 1000 occurence par exemple, je vous serais reconnaissant de m'expliquer comment faire pour que je puisse éviter de poser trop de questions sur le forum ^^').

Bonne journée à tous
XaV...
Webmaster des Larmes du Chaos

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

26 avr. 2006, 09:31

euh :shock: j'ai pas tout compris

Tu récupéres un timestamp et tu voudrais, en JS, réaliser un setTimeout pour aller jusqu'a ce timestamp, c'est ça ?
Quelle action doit être réalisée à la fin de ton setTimeout ?

Avant d'avoir ces réponses, je ne pense pas pouvoir t'aider :oops:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 80 Messages

28 avr. 2006, 14:43

Bonjour de nouveau ^^,

Je ré-explique plus en détail :

1) Je récupère un timestamp de la base de donnée

2) Je fais la soustraction entre le timestamp en question et le timestamp actuel (en php). Si le résultat est négatif, pas de suite. S'il est positif, alors on obtient le nombre de secondes qu'il reste

3) A partir de là, un beau décompte (une sorte de compte à rebours) se met en place, en H/m/s, à partir du résultat trouvé au point précédent, il démarre quand la page se charge (body onload=go() ) il me semble
--> c'est là le problème, je ne sais pas comment faire pour 'transférer' cette valeur de timestamp au javascript. Je veux pas de script tout fait de sites, ça ne me sert pas ;)

4) Lorsque le compte à rebours arrive à 0, soit il recharge la page, soit il lance une action php, soit il affiche un texte. Je ne sais pas quel est le plus simple et le plus compliqué.

Merci de l'aide que vous pourrez m'apporter ;)
XaV...
Webmaster des Larmes du Chaos

Eléphant du PHP | 493 Messages

28 avr. 2006, 14:49

4) Lorsque le compte à rebours arrive à 0, soit il recharge la page, soit il lance une action php, soit il affiche un texte. Je ne sais pas quel est le plus simple et le plus compliqué.
Tu ne pourras pas exécuter d'action PHP à moins de mettre de l'AJAX ou quelquechose dans ce genre (HTTPRequest ou SOAP).

EDIT: Je mets un lien dès que possible :P
EDIT2: Un pti script

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 avr. 2006, 15:04

Pour "transferer" la timestamp à JS, il suffit de créer cette variable dans ton script JS à la création
<?php
  $ma_var =12;
?>
<script type="text/javascript">
  var ma_var=<?= $ma_var ?>;

  alert(ma_var);
</script>
A partir de là, il ne te suffit plus qu'a lancer une fonction javascript qui va faire un setTimeOut(1000) pour qu'a chaque seconde, tu décrémentes ton timestamp, tu met à jour l'affichage de la durée.

Quand le timestamp = 0, soit tu appelles une page pour réaliser une action PHP, soit tu affiches un texte
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 80 Messages

28 avr. 2006, 15:41

Merci, j'avance pas mal.

Je voulais savoir une dernière chose : est-ce que si à la fin de l'action JS, je mets un include php, ça marchera, ou faut-il passer obligatoirement à de l'AJAX, comme le disait Vaedan ?
XaV...
Webmaster des Larmes du Chaos

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 avr. 2006, 15:44

Tout dépend ce que tu veux faire :
- si tu vuex conserver des données sur ta page tout en réalisant une action PHP qui va en modifier d'autres, AJAX est indispensable
- si tu veux une simple opération PHP qui ne modifie rien sur ta page, je pense qu'utiliser AJAX, c'est sortir les gros moyens puisque tu fait aussi un aller/retour vers le serveur sauf que c'est plus compliqué à mettre en place

Et pourtant, je suis AJAX-adict ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 493 Messages

28 avr. 2006, 15:55

Disons que si tu es ne t'y connais pas très bien, fait une simple redirection. L'AJAX est assez délicat à utiliser quand on n'y connait pas grand chose mais ô combien puissant. Je souligne le fait qu'AJAX est relativement complexe à mettre en place quand on y connait rien ! Et comme l'a notifié zeus, il est inutile d'utiliser AJAX pour une petite opération.

Si toutefois tu veux t'y pencher : La Doc AJAX façon Mozilla

Il faut aussi préciser une chose, l'AJAX sur IE n'est pas le même que pour Firefox :) Tout le monde connait le respect des normes façon Microsoft, et pour dire, le XHTML/JS d'IE n'a rien à voir (j'exagère) avec celui de Firefox !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 avr. 2006, 16:00

Ô jour béni où IE arretera de se moucher des standards ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 80 Messages

29 avr. 2006, 00:43

Bonsoir,

Hé bien, j'avoue que autant le PHP je commence à m'en sortir assez correctement (cf www.leslarmesduchaos.com), mais niveau JS et AJAX, je débute, mais je compte bien me lancer dans les deux ^^

Merci pour vos réponses ;)
XaV...
Webmaster des Larmes du Chaos