Accueil > Forum > > > > Aide pour affichage d'un compte à rebours
Aide pour affichage d'un compte à rebours
lundi 7 mars 2011 à 13:12:54 |
Aide pour affichage d'un compte à rebours

donkeykong
|
Bonjour à tous.
Je suis débutant en PHP et pour m'initier j'ai voulu créer une petite page sans trop me prendre la tête (et qui n'a aucune utilité puisque c'est pour m'initier) :
Code PHP : <body>
<?php
/* variables */
$nombre_maisons = 0;
$temps = 10;
/*corps */
echo "Nombre de maisons : </br>";
echo "$nombre_maisons </br>";
echo "</br> Chrono : </br>";
echo "<input type='button' value='Construire' name='construire'>" ;
?>
</body>
</html>
Bien sûr, ce code n'est pas encore terminé.
Explication de ce que je voudrais arriver à faire : on a au début un nombre de maison égal à zéro, quand on appuie sur le bouton "construire" un compte à rebours de 10 secondes se lance, à la fin de ce compte à rebours $nombre_maisons est incrémenté de 1.
J'essaie notamment d'afficher le compte à rebours en temps réel sur l'écran, c'est à dire que je voudrais faire en sorte que le défilement des chiffres s'affiche.
J'avais pensé à une fonction qui serait lancée lors du clic sur le bouton :
Code PHP : function chrono()
{
while ($temps > 0)
{
echo "$temps </br>";
$temps--;
}
}
Mais de 1) ça affiche "10987654321" alors que moi je veux "10", puis "9", etc...
et de 2) ça ne marche pas quand j'appelle la fonction avec "onclick" sur le bouton "construire".
Pouvez vous me donner quelques indications sur ce que je devrais faire s'il vous plait ?
Uniquement sur l'affichage du chrono, le reste je me débrouilles.
Merci d'avance.
|
|
lundi 7 mars 2011 à 14:48:46 |
Re : Aide pour affichage d'un compte à rebours

ludwig59
|
Bonjour,
Tu peux regarder du côté de a fonction settimeout qui te permet d'appeler une fonction toute les n millisecondes.
Tu peux donc, toute les secondes appeler une fonction qui décrémente le chrono de 1
|
|
lundi 7 mars 2011 à 15:06:18 |
Re : Aide pour affichage d'un compte à rebours

donkeykong
|
Merci ça va m'aider je pense.
Mais pour afficher le décompte ?
|
|
lundi 7 mars 2011 à 15:09:19 |
Re : Aide pour affichage d'un compte à rebours

ludwig59
|
Tu peux, dans une div avec un id, afficher la valeur 10, puis dans la fonction qui décrémente le chrono, changer la valeur de la div avec la nouvelle valeur.
|
|
lundi 7 mars 2011 à 16:11:09 |
Re : Aide pour affichage d'un compte à rebours

donkeykong
|
Et ça va se rafraichir automatiquement ?
|
|
mardi 8 mars 2011 à 00:34:29 |
Re : Aide pour affichage d'un compte à rebours

007Julien
|
Le PHP c'est fait pour construire une page et s'en débarrasser le plus vite possible pour ne pas surcharger le serveur !
Ce n'est donc pas une très bonne idée pour commencer le PHP, que d'essayer d'actualiser des données toutes les secondes...
Et puis le setTimeout est une fonction javascript !
Mieux vaudrait chercher à afficher un diction pour chaque jour de la semaine ou du mois, sur un fond d'écran variable suivant l'heure du jour à l'ouverture de la page.
|
|
mardi 8 mars 2011 à 11:34:48 |
Re : Aide pour affichage d'un compte à rebours

donkeykong
|
Ca je sais faire ;)
Pour le reste je pensais à un compte à rebours comme ceux qu'il y a sur certains site comme rapidshare, pour ça je fais quoi ?
|
|
mardi 8 mars 2011 à 12:47:11 |
Re : Aide pour affichage d'un compte à rebours

007Julien
|
En javascript cela pourrait donner ceci :
Code Javascript :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title>Untitled</title>
<style type="text/css">
body {font-size:48px;text-align:center}
p{width:400px;margin:40px auto;}
</style>
</head>
<body id="bdy">
<p>Attention,<br>je vais me désintégrer dans<br><span id="idc"></span> secondes !</p>
<script type="text/javascript">
var n=10;
function car(){
document.getElementById('idc').innerHTML=n--;
if (0<n) setTimeout(car,1000);
else {n=10;document.getElementById('idc').innerHTML=0;exp()}
}
function exp(){
if (document.getElementById('bdy').style.backgroundColor!='#000')
document.getElementById('bdy').style.backgroundColor='#000';
else document.getElementById('bdy').style.backgroundColor='#fff000';
if (0<n--) setTimeout(exp,100+Math.round(100*Math.random()));
}
car();
</script>
</body>
Maintenant, s'il s'agissait d'autre chose, il conviendrait de disposer d'un lien ou d'une description un peu plus explicite du compte à rebours souhaité ?
|
|
mardi 8 mars 2011 à 13:31:42 |
Re : Aide pour affichage d'un compte à rebours

donkeykong
|
Voilà Julien, tu as exactement compris ce que veux.
Maintenant vu que je m'y connais un peu moins en javascript que toi, peux tu un peu m'expliquer ton code s'il te plait ?
|
|
mardi 8 mars 2011 à 14:51:54 |
Re : Aide pour affichage d'un compte à rebours

007Julien
|
Mon code comprend une variable globale n (définie à l'extérieur des fonctions cette variable est accessible dans tout le script), dont la valeur initiale est fixée à 10 (1ère ligne); puis, deux fonctions nommées car (comme compte à rebours) et exp (comme explosion).
La première de ces fonctions récupère, par son identifiant (instruction document.getElementById('idc')) l'objet, que constitue le span dans le DOM (en quelque sorte un duplicata du document constitué non plus de balises HTML mais d'objets) pour changer le code inclus (innerHTML) entre les deux balises (le vide initial compris entre le <span id="idc"> et </span>) en la valeur de n (soit 10), puis décrémenter n (le n--) qui décrémente après cette insertion (un --n décrémanterait avant et le compte à rebours commencerait à 9). Cette fonction compare ensuite la valeur de n à zéro pour se relancer (le setTimeout(car,1000)) au bout de 1000 millisecondes si n est positif et, au contraire, lancer la deuxième fonction, après avoir remis le compteur n à 10 et mis à 0 la valeur incluse entre les deux balises du span.
Maintenant, la seconde fonction a sensiblement la même structure, mais les modifications portent sur la couleur de fond du body (identifié par un id="bdy"), accessible par la proriété backgroundColor du style de l'objet correspondant.
Cette seconde fonction se rappelle aussi dix fois (vriante sur le comptage dans le test de comparaison) à un rythme plus soutenu pour simuler l'explosion annoncée. Ici, Math.random() délivrant un nombre aléatoire compris entre 0 et 1, la multiplication par 100 puis l'arrondi et l'ajout de 100 permettent d'obtenir un entier alétaoire compris entre 100 et 200 assurant la vision du changement de couleur de fond (on pourrait d'ailleurs descendre tout en restant au dessus d'une trentaine de secondes compte tenu de la persitance des impressions lumineuses).
J'en aurais terminé, en ajoutant que la dernière ligne (le car();) appelle la fonction car puis en précisant que ce script était placé à la fin du body pour que le DOM existe lors de son éxecution (placé dans le header il aurait fallu attendre que le document soit chargé pour lancer le script avec une balise d'ouverture du body modifiée <body id"bdy" onload="car()">.
Autrement dit, avec le HTML on plante le décors que l'on anime avec un script. À vous de jouer. Ouf !
|
|
Cette discussion est classée dans : code, temps, echo, compte, rebours
Répondre à ce message
Sujets en rapport avec ce message
Gestion d'évènement souris [ par BSide ]
Bonjour,j'essaie depuis un sacré moment de faire fonctionner le code qui suit...(récupéré dans la source de MySQL)Impossible de le faire tourner !!! L
probleme avec un tableaux (ou est l'erreur??) [ par h2h ]
salut tout le monde, jai un probleme avec ce tableaux.. en fait ce tableaux affiche bien ce ke je veu mai le prob cest kil décale tout d'une ligne ce
SELECT ds un tablo avec un <tr> coloré sur deux [ par MisterJAD ]
J'ai fait un SELECT* dans une table, je l'ai mis dans tableau, mais je voudrais, pour plus de lisibilité s'il y a un grand nombre d'enregistrement fai
formulaire a retardement ????? [ par alvaro ]
Salut, je ne conprend pas pourquoi! pourquoi... pourquoi...c'est un passage de variable par formulaire. Sous ie4, ou modzila il faut attendre 10s sur
Rien ne rentre dans ma base... [ par dchevalier ]
Bonjour,J'utilise Easy PHP et Dreamweaver MX 2004.J'ai crée un formulaire pour rentrer les coordonnées de mes clients dans une base. Ma requête d'inse
pb comparaison string [ par fmazoue ]
ca doit etre tout con mais la je vois pas l'erreur je doit etre bigleu !!!voila le bout de code : echo "comparaison entre ".$pwd." et ".$info[$i]["ntp
session ne fonctionne pas....!!! [ par michong ]
salut a tousalors voilajai désespérément essayé de faire fonctionner ces variables de sessions mais sans succéesje me suis dit que ssa doit etre mon c
Limiter le nombre de résultat d'un 'readdir()' [ par Miloflyer ]
Bonsoir, me revoici... Voici le code d'un script qui permet d'afficher toutes les images présentes dans un répertoire donné, dans un tableau sous form
Problème affichage de la commentaires [ par dyto ]
bonjour les zéros, mon probleme c que je fai un tuto, et il y 2 champs, et kon on les remplies, il l'ajoute dans la bdd et l'affiche dans en haut, com
probleme de code ou d affichage????????? [ par steph0077 ]
voila j ai un leger probleme avec ce script qui ne m affiche pas les donnees comme je le desire..............les langues qui doivent s afficher ne le
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : GOOGLE MAPRE : GOOGLE MAP par inwebo
Cliquez pour lire la suite par inwebo GOOGLE MAPGOOGLE MAP par fatmanajjar
Cliquez pour lire la suite par fatmanajjar
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|