Code javascript dans while php
Résolu/Fermé
dwieser
Messages postés
225
Date d'inscription
samedi 25 avril 2009
Statut
Membre
Dernière intervention
29 janvier 2013
-
22 janv. 2013 à 22:36
Utilisateur anonyme - 27 janv. 2013 à 19:57
Utilisateur anonyme - 27 janv. 2013 à 19:57
A voir également:
- Code javascript dans while php
- Code asci - Guide
- Code puk bloqué - Guide
- Telecharger javascript - Télécharger - Langages
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
6 réponses
dwieser
Messages postés
225
Date d'inscription
samedi 25 avril 2009
Statut
Membre
Dernière intervention
29 janvier 2013
9
23 janv. 2013 à 19:38
23 janv. 2013 à 19:38
bonjour,
je relance mon sujet MERCI PAR AVANCE
je relance mon sujet MERCI PAR AVANCE
Utilisateur anonyme
23 janv. 2013 à 20:56
23 janv. 2013 à 20:56
Bonjour
Tu as mis ton compte à rebours à l'intérieur d'une boucle : veux-tu un seul ou plusieurs compte à rebours ?
Si tu en veux plusieurs, problème : tu crées plusieurs div avec le même id, ce qui est interdit. Et c'est logique que ce soit interdit, car sinon ton getElementById va chercher quoi ?
Si tu en veux vraiment plusieurs, il faut leur donner des noms différents mais il faut aussi plusieurs compteurs, donc remplacer la variable simple temps_restant par un tableau.
D'autre part (et bien moins grave), faire -1 à chaque passage dans la fonction est une très mauvaise méthode, les tempos étant plus qu'approximatives... Il vaut mieux initialiser ta variable avec une heure de fin et calculer à chaque fois le temps restant, il n'y aura pas de dérive du comptage.
Tu as mis ton compte à rebours à l'intérieur d'une boucle : veux-tu un seul ou plusieurs compte à rebours ?
Si tu en veux plusieurs, problème : tu crées plusieurs div avec le même id, ce qui est interdit. Et c'est logique que ce soit interdit, car sinon ton getElementById va chercher quoi ?
Si tu en veux vraiment plusieurs, il faut leur donner des noms différents mais il faut aussi plusieurs compteurs, donc remplacer la variable simple temps_restant par un tableau.
D'autre part (et bien moins grave), faire -1 à chaque passage dans la fonction est une très mauvaise méthode, les tempos étant plus qu'approximatives... Il vaut mieux initialiser ta variable avec une heure de fin et calculer à chaque fois le temps restant, il n'y aura pas de dérive du comptage.
dwieser
Messages postés
225
Date d'inscription
samedi 25 avril 2009
Statut
Membre
Dernière intervention
29 janvier 2013
9
Modifié par dwieser le 25/01/2013 à 00:39
Modifié par dwieser le 25/01/2013 à 00:39
bonjour,
j'ai pris note
je me doutais bien qu'il fallait plusieurs div id
justement j'ai bûché dessus pour eviter d'avoir à écrire 10000 lignes
concernant le passage du -1 du code javascript
afin de ne pas avoir de dérive du comptage
je vais passer par "date()"
j'ai trouvé une solution avec mon while php
et mes compte à rebours
j'y connais pas grand chose en javascript
alors j'ai cherché des exemples et j'en ai analysé
quelques uns bien que sur internet y a pas énormément d'exemple
j'en ai choisi un qui est intéressant
je fais encore quelques essais mais pour l'instant
c'est bon
je vous exposerai le résultat final
y a deux ou trois petite chose que je n'ai pas très bien compris
dont je demanderai explication
a très bientot
Moi je plante et toi tu creuses !!!
j'ai pris note
je me doutais bien qu'il fallait plusieurs div id
justement j'ai bûché dessus pour eviter d'avoir à écrire 10000 lignes
concernant le passage du -1 du code javascript
afin de ne pas avoir de dérive du comptage
je vais passer par "date()"
j'ai trouvé une solution avec mon while php
et mes compte à rebours
j'y connais pas grand chose en javascript
alors j'ai cherché des exemples et j'en ai analysé
quelques uns bien que sur internet y a pas énormément d'exemple
j'en ai choisi un qui est intéressant
je fais encore quelques essais mais pour l'instant
c'est bon
je vous exposerai le résultat final
y a deux ou trois petite chose que je n'ai pas très bien compris
dont je demanderai explication
a très bientot
Moi je plante et toi tu creuses !!!
dwieser
Messages postés
225
Date d'inscription
samedi 25 avril 2009
Statut
Membre
Dernière intervention
29 janvier 2013
9
27 janv. 2013 à 13:53
27 janv. 2013 à 13:53
bonjour,
voici le code que j'ai trouvé
que veut dire date_event????
Après je vois id_compte_rebours partie javascript, et plus bas vers mon code php
j'ai setInterval(function(){Rebour('_______,'compte_rebours_<?php echo $i;?>');}, ____);
j'ai du mal à saisir peut on m'expliquer ????
j'ai essayé plusieurs compte à rebours, le script fonctionne
mais j'essaye de le modifier
et là j'ai vraiment de gros soucie enfin pour moi
voici ce que j'aurai espéré
lorsque le compte à rebours arrive à zéro, rafraichissement de la page
là on peut dire pas de soucis c'est eventuellement ds mon javascript en else
mais pour aller plus loin
dans mon code php j'aurai voulu donné des condition soit deux au préalable
première condition c'est si le compte à rebours est supérieur à zéro on affiche le compte à rebours
sinon si le compte a rebours est inferieur à zéro on affiche un lien
MERCI PAR AVANCE DE VOS EXPLICATIONS
voici le code javascript
voici une partie de mon code php
voici le code que j'ai trouvé
que veut dire date_event????
Après je vois id_compte_rebours partie javascript, et plus bas vers mon code php
j'ai setInterval(function(){Rebour('_______,'compte_rebours_<?php echo $i;?>');}, ____);
j'ai du mal à saisir peut on m'expliquer ????
j'ai essayé plusieurs compte à rebours, le script fonctionne
mais j'essaye de le modifier
et là j'ai vraiment de gros soucie enfin pour moi
voici ce que j'aurai espéré
lorsque le compte à rebours arrive à zéro, rafraichissement de la page
là on peut dire pas de soucis c'est eventuellement ds mon javascript en else
mais pour aller plus loin
dans mon code php j'aurai voulu donné des condition soit deux au préalable
première condition c'est si le compte à rebours est supérieur à zéro on affiche le compte à rebours
sinon si le compte a rebours est inferieur à zéro on affiche un lien
MERCI PAR AVANCE DE VOS EXPLICATIONS
voici le code javascript
<script type="text/JavaScript"> function Rebour(date_event,id_compte_rebours) { var Affiche=document.getElementById(id_compte_rebours); var date1 = new Date(); var date2 = new Date (date_event); // Date et heure de l'événement var sec = (date2 - date1) / 1000; // Temps donné en millièmes de seconde var n = 24 * 3600; //nombre de secondes dans un jour // Si le temps restant est supérieur à 0 if (sec >= 0) { j = Math.floor (sec / n); h = Math.floor ((sec - (j * n)) / 3600); mn = Math.floor ((sec - ((j * n + h * 3600))) / 60); sec = Math.floor (sec - ((j * n + h * 3600 + mn * 60))); if(j == 0){ j = ''; Jour = ''; } else { Jour = (j == 1) ? "j <span class='or'>|</span>" : "j <span class='or'>|</span>"; } if(h == 0){ h = ''; Heure = ''; } else { Heure = (h == 1) ? "h <span class='or'>|</span>" : "h <span class='or'>|</span>"; } if(mn == 0){ mn = ''; Minute = ''; } else { Minute = (mn == 1) ? "min <span class='or'>|</span>" : "min <span class='or'>|</span>"; } if(sec == 0){ sec = ''; Seconde = ''; Et = ''; } else { Seconde = (sec == 1) ? "sec" : "sec"; Et = (mn == 0 && h == 0 && j == 0) ? "" : ""; } Affiche.innerHTML = j + ' ' + Jour + ' ' + h + ' ' + Heure + ' ' + mn + ' ' + Minute + ' ' + Et + ' ' + sec + ' ' + Seconde; }else{ Affiche.innerHTML="<font color=\"red\">C'est fini !!</font>"; //document.location.href="voir_production.php" } } </script>
voici une partie de mon code php
else { $tab = explode ("|",$tab); $i=0; while ($i<count($tab)) { echo '<h1>'.$tab[$i].'</h1>'; $exe = explode ("|",$dpr[$tab[$i]]); echo 'time_deb_const: '.$exe[0].'<br />'; echo 'time_fin_const: '.$exe[1].'<br />'; echo 'tps compte à rebours: '.'<br />'; echo $dat1[$i] = strtotime($exe[1]).'<br />'; echo $dat0 = strtotime(date("Y-m-d H:i:s")).'<br />'; if ($dat1[$i]>$dat0) //si "time construction" est superieur à "time()", // on affiche le compte à rebours { ?> <div id="compte_rebours_<?php echo $i;?>"> <script type="text/JavaScript"> setInterval(function(){Rebour('<?php echo $exe[1];?>','compte_rebours_<?php echo $i;?>');}, 1000); </script> </div> <?php } if ($dat1[$i]<$dat0)//ou else // si "time construction" est inferieur à "time()", //on n'affiche pas le compte à rebours mais on affiche un lien { echo '<a href="city.php">acceuil</a>'; }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dwieser
Messages postés
225
Date d'inscription
samedi 25 avril 2009
Statut
Membre
Dernière intervention
29 janvier 2013
9
Modifié par dwieser le 27/01/2013 à 16:15
Modifié par dwieser le 27/01/2013 à 16:15
bonjour,
voici le code que j'ai trouvé
que veut dire date_event????
Après je vois id_compte_rebours partie javascript, et plus bas vers mon code php
j'ai setInterval(function(){Rebour('_______,'compte_rebours_<?php echo $i;?>');}, ____);
j'ai du mal à saisir peut on m'expliquer ????
le code fonctionne très bien la partie javascript et également la partie php
mais après de nombreuses vérifications
j'ai pu remarqué qu'il fallait rajouter 1 heure "heure d'hivers"
mais cela pose problème comment faire pour changer ce changement d'heure été hivers sans le faire manuellement directement ds le code ????
Une petite idée?????
Moi je plante et toi tu creuses !!!
voici le code que j'ai trouvé
que veut dire date_event????
Après je vois id_compte_rebours partie javascript, et plus bas vers mon code php
j'ai setInterval(function(){Rebour('_______,'compte_rebours_<?php echo $i;?>');}, ____);
j'ai du mal à saisir peut on m'expliquer ????
le code fonctionne très bien la partie javascript et également la partie php
mais après de nombreuses vérifications
j'ai pu remarqué qu'il fallait rajouter 1 heure "heure d'hivers"
mais cela pose problème comment faire pour changer ce changement d'heure été hivers sans le faire manuellement directement ds le code ????
Une petite idée?????
<?php include('config.php') ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="<?php echo $design; ?>/style.css" rel="stylesheet" title="Style" /> <title>Voir mes productions</title> <script type="text/JavaScript"> function Rebour(date_event,id_compte_rebours) { var Affiche=document.getElementById(id_compte_rebours); var date1 = new Date(); var date2 = new Date (date_event); // Date et heure de l'événement var sec = (date2 - date1) / 1000; // Temps donné en millièmes de seconde var n = 24 * 3600; //nombre de secondes dans un jour // Si le temps restant est supérieur à 0 if (sec >= 0) { j = Math.floor (sec / n); h = Math.floor ((sec - (j * n)) / 3600); mn = Math.floor ((sec - ((j * n + h * 3600))) / 60); sec = Math.floor (sec - ((j * n + h * 3600 + mn * 60))); if(j == 0){ j = ''; Jour = ''; } else { Jour = (j == 1) ? "j <span class='or'>|</span>" : "j <span class='or'>|</span>"; } if(h == 0){ h = ''; Heure = ''; } else { Heure = (h == 1) ? "h <span class='or'>|</span>" : "h <span class='or'>|</span>"; } if(mn == 0){ mn = ''; Minute = ''; } else { Minute = (mn == 1) ? "min <span class='or'>|</span>" : "min <span class='or'>|</span>"; } if(sec == 0){ sec = ''; Seconde = ''; Et = ''; } else { Seconde = (sec == 1) ? "sec" : "sec"; Et = (mn == 0 && h == 0 && j == 0) ? "" : ""; } Affiche.innerHTML = j + ' ' + Jour + ' ' + h + ' ' + Heure + ' ' + mn + ' ' + Minute + ' ' + Et + ' ' + sec + ' ' + Seconde; }else{ //Affiche.innerHTML="<font color=\"red\">C'est fini !!</font>"; document.location.href="voir_production.php" } } </script> </head> <body> <center> <img src = "default/images/titre.gif"></img><br /> </center> <?php if(isset($_SESSION['username'])){echo ' '.htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8');} ?><br /> <?php echo "id: ".$_SESSION['userid'];?><br /> <br /> <?php //Si lutilisateur est connecte, on lui donne un lien pour modifier ses informations, pour voir ses messages et un pour se deconnecter if(isset($_SESSION['username'])) { //On compte le nombre de nouveaux messages que lutilisateur a $nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"')); //Le nombre de nouveaux messages est stoque dans la variable $nb_new_pm $nb_new_pm = $nb_new_pm['nb_new_pm']; //on enregistre heure actuel et heure fin de connection $time_fin_connect = time() + $seconde_fin_connect; mysql_query("UPDATE users SET time_connect = '".time()."' , time_fin_connect = '".$time_fin_connect."' WHERE username='".$_SESSION['username']."'") or die("erreur time_connect ou time_fin_connect<br>"); if ($_SESSION['username']=='admin') { ?> <a href="gestion_production.php">Gestion des productions</a><br /> <?php } ?> <a href="accueil.php">Accueil</a><br /> <a href="city.php">Ma ville</a><br /> <a href="creer_production.php">Créer une production</a><br /> <a href="voir_production.php">Voir mes productions</a><br /> <a href="production.php">Acheter une production</a><br /> <a href="users.php">Classement</a><br /> <a href="option.php">Option</a><br /> <a href="list_pm.php">Messages(<?php echo $nb_new_pm; ?> non-lus)</a><br /> <a href="index.php">Se déconnecter</a><br /> <br /> <?php include_once "calcul.php"; $result = mysql_query('SELECT * FROM production where username = "'.$_SESSION['username'].'"'); $dpr = mysql_fetch_array($result, MYSQL_ASSOC); $_SESSION['production_id'] = $dpr['id']; echo $_SESSION['production_id'].'<br />'; echo "production de: ".$dpr['username'].'<br />'; echo "nom des produits: ".$dpr['production'].'<br />'; $tab=$dpr['production']; if($tab=="") { echo '<h1>Vous ne possédez pas de productions actuellement</h1>'; } else { $tab = explode ("|",$tab); $i=0; while ($i<count($tab)) { echo '<h1>'.$tab[$i].'</h1>'; $exe = explode ("|",$dpr[$tab[$i]]); echo 'time deb: '.$exe[0].'<br />'; echo 'time fin: '.$exe[1].'<br />'; echo 'tps compte à rebours: '.'<br />'; echo $dat0[$i] = strtotime($exe[0]).'heure deb<br />'; echo $dat1[$i] = strtotime($exe[1]).'heure fin<br />'; $madate= date("Y-m-d H:i:s"); list($annee,$mois,$jour,$h,$m,$s)=sscanf($madate,"%d-%d-%d %d:%d:%d"); echo "Ancienne date: ".$annee."-".$mois."-".$jour." ".$h.":".$m.":".$s."<br />"; $h+=1; $timestamp=mktime($h,$m,$s,$mois,$jour,$annee); $dat5=date('Y-m-d H:i:s',$timestamp); echo $dat5 = strtotime($dat5); if ($dat5<$dat1[$i]) //si "time construction" est superieur à "time()", // on affiche le compte à rebours { ?> <div id="compte_rebours_<?php echo $i;?>"> <script type="text/JavaScript"> setInterval(function(){Rebour('<?php echo $exe[1];?>','compte_rebours_<?php echo $i;?>');}, 1000); </script> </div> <?php } else//ou else // si "time construction" est inferieur à "time()", //on n'affiche pas le compte à rebours mais on affiche un lien { echo '<a href="city.php">acceuil</a>'; } //on recupere des donnees via id_production pour calcul $nm_pt = mysql_real_escape_string($tab[$i]); $result_id = mysql_query('SELECT * FROM id_production where nm_pt="'.$nm_pt.'"'); $did = mysql_fetch_array($result_id, MYSQL_ASSOC); echo 'temps de fabrication: '.$did['tps_fab'].'<br />'; echo 'nom de la matière n°1: '.$did['nm_mat_pre1'].'<br />'; echo 'image matière première n°1: '.$did['url1'].'<br />'; echo 'consommation de la matière n°1: '.$did['cons_mp1'].'<br />'; ?> <a href="const_id.php?id=<?php echo $nm_pt; ?>">construire</a> <?php $i++; echo '<hr color="blue">'; } } // echo "temps de fabrication du produit :".$dpr['tps_fab'].'<br />'; // echo "combien de vente par heure pour 1000 personnes :".$dpr['comb_vt'].'<br />'; // echo "nom de la matière n°1 :".$dpr['nm_mat_pre1'].'<br />'; // echo "image de la matière n°1 :".$dpr['url1'].'<br />'; //echo "prix achat de la matiere n°1 :".$dpr['px_at_mp1'].'<br />'; // echo "consommation de la matiere n°1 :".$dpr['cons_mp1'].'<br />'; // echo "nom de la matière n°2 :".$dpr['nm_mat_pre2'].'<br />'; // echo "image de la matière n°2 :".$dpr['url2'].'<br />'; // echo "prix achat de la matiere n°2 :".$dpr['px_at_mp2'].'<br />'; // echo "consommation de la matiere n°2 :".$dpr['cons_mp2'].'<br />'; // echo "nom de la matière n°3 :".$dpr['nm_mat_pre3'].'<br />'; // echo "image de la matière n°3 :".$dpr['url3'].'<br />'; // echo "prix achat de la matiere n°3 :".$dpr['px_at_mp3'].'<br />'; // echo "consommation de la matiere n°3 :".$dpr['cons_mp3'].'<br />'; ?> <!-- <a href="achat_production.php?id=<?php //echo $dpr['id'];?>">acheter</a><br /> <hr color="blue">--> <?php } else { //Sinon, on lui donne un lien pour sinscrire et un autre pour se connecter header('location:index.php'); } ?> </body> </html>
Moi je plante et toi tu creuses !!!
Bonjour
date_event représente dans la fonction la date de l'événement. Je suppose que ce script a été écrit par un français, car en anglais on dirait plutôt event_date ^^
compte_rebours_<?php echo $i;?> : ce code est lié au problème que je te signalais, si tu voulais plusieurs comptes à rebours. Il faut créer des <div> avec des noms différents, et, comme on passe le nom du div à la fonction, il faut aussi les appeler en passant des noms différents. Ces noms différents sont obtenus en ajoutant un compteur à la fin d'un nom de base. Quand on repasse dans la boucle avec $i=0,1,2 .. on crée successivement des div avec les noms compte_rebours_0,compte_rebours_1,compte_rebours_2... et on appelle la fonction Rebour en lui passant ces noms de div. Tous ces noms de div sont différents, chaque copie de la fonction peut retrouver le sien sans se mêler les pinceaux avec ceux des autres.
Pour ton problème d'heure d'hiver / heure d'été, je n'ai pas de réponse.
date_event représente dans la fonction la date de l'événement. Je suppose que ce script a été écrit par un français, car en anglais on dirait plutôt event_date ^^
compte_rebours_<?php echo $i;?> : ce code est lié au problème que je te signalais, si tu voulais plusieurs comptes à rebours. Il faut créer des <div> avec des noms différents, et, comme on passe le nom du div à la fonction, il faut aussi les appeler en passant des noms différents. Ces noms différents sont obtenus en ajoutant un compteur à la fin d'un nom de base. Quand on repasse dans la boucle avec $i=0,1,2 .. on crée successivement des div avec les noms compte_rebours_0,compte_rebours_1,compte_rebours_2... et on appelle la fonction Rebour en lui passant ces noms de div. Tous ces noms de div sont différents, chaque copie de la fonction peut retrouver le sien sans se mêler les pinceaux avec ceux des autres.
Pour ton problème d'heure d'hiver / heure d'été, je n'ai pas de réponse.
dwieser
Messages postés
225
Date d'inscription
samedi 25 avril 2009
Statut
Membre
Dernière intervention
29 janvier 2013
9
27 janv. 2013 à 19:21
27 janv. 2013 à 19:21
bonjour,
merci de vos réponses
j'ai compris
comment fonctionne ce code
explication clair
problème résolu
GRAND MERCI
merci de vos réponses
j'ai compris
comment fonctionne ce code
explication clair
problème résolu
GRAND MERCI