• imprimer
  • aide

Forum de discussions « Javascript - DHTML - VBScript »

Retrouvez les publications relatives à ces discussions dans notre rubrique javascript.

actualiser une partie d'un script seulement ?! :-)

liste des forums liste des discussions Participer à la discussion

Photo de foldi3 Message publié le vendredi 12 février 2010 - 17h22 par foldi3.
Bonjour Bonjour

Dans le cadre de mon travail je conçoit un horloge à l'horizontal en php/html. Le seul problème est que pour actualiser mon heure je doit actualiser toute la page, donc je voudrais savoir si il existait un moyen d'actualiser (par exemple toute les minutes) une partie d'un script seulement. Je vous le met pour avoir une idée :

<?php $numero_page=3; //formule $nbMinuteJournee = 24*60; $minutesEcouleeHeure = date('H')*60; $minutesEcoulee = $minutesEcouleeHeure+date('i'); $pourcent = ($minutesEcoulee*100)/$nbMinuteJournee; $pourcent = ($pourcent*1194)/100; //pour toruver la valeur en pixel (1194 = valeur total) $pourcent = round($pourcent, 1); echo $pourcent; ?> <table border="0" width="1200"> <tr> <?php $i=1; $zero = ''; while($i <= 24) { if($i<=9) { $zero = '0'; } ?> <td width="50px" align="right"> <?php echo $zero.$i ?>H&nbsp;<img src="image/green_bar.gif" border="0" height="20px" width="1px" /> </td> <?php $i=$i+1; $zero = ''; } ?> <tr> <td colspan="25"><?php echo "<img src='' border='0' height='40px' width='0%' >"; echo "<img src='image/green_bar.gif' border='0' height='40px' width='".$pourcent."px' >"; ?></td> </tr> </table>

Meilleures salutations

Julien
Photo de nours312 Message publié le vendredi 12 février 2010 - 19h30 par nours312. modérateur nours312.com -- je ne suis pas codeur bénévol, mais j'aide gratos ;)
oulaaaaaaaaaaaa ! ...

pourquoi fais tu tout ça !??

un simple js te permettrais de dimensionner ton image convenablement et automatiquement !!

fais nous un screenShoot de ce que tu veux (2 dans 2 position/heures différentes) et on te donnera la marche à suivre pour monter la fonction JS !...

Mais laisse tomber tout ça, t'es pas parti dans la bonne direction ;)

@+
Photo de foldi3 Message publié le samedi 13 février 2010 - 11h11 par foldi3.
salut nours ;-)

Merci pour ta réponse qui m'étonne pas trop, mais ne connaisant pas encors le JS me suis dis que le php pourrais aller ;-)

voici donc à quoi doit ressembler tout sa une fois fini :

http://hold-em-poker.ch/images/time.jpg

j'ose juste indiquer une petite subtilité, c'est que je doit pouvoir starter l'heure à un x moment et que la barre verte parte depuis par exemple 06h le matin jusque à par exemple 17h00 le soir.

Merci d'avance pour ton aide.

Julien
Photo de nours312 Message publié le samedi 13 février 2010 - 15h55 par nours312. modérateur nours312.com -- je ne suis pas codeur bénévol, mais j'aide gratos ;)
Yop ^^

Bon, je me suis amusé ^^ http://allhtml.nours312.com/foldi3-1.php

que je t'explique :

la fonction JS, je l'ai mise tout à la fin pour éviter le onLoad, mais tu pourras le mettre sans soucy ! si ce n'est qu'il faudra remplir les variables img, title et alt dans la fonction initialize() ;)

Actuellement, le script défini, au chargement seulement la largeur des div contenant l'heure en fonction de la fenêtre du navigateur !
puis lance la fonction en charge de récupérer l'heure et de dimensionner l'image (barre verte)
la barre verte se dimensionne toute seul, attribut l'heure aux attributs alt et title de l'image en se basant sur le template initialement défini (ya juste une regexp pour placer l'heure à la place de "#H" et les minutes à la place de "#M" ;)
Puis elle se recharge toutes les minutes !... :D

je te donne le code PHP pour générer les divs Heures, ça peut etre utile :
<div id="tblH"> <?php $h=0; while($h<24){ $h++; echo "<div class='repereHeure'>$h |</div>"; } ?> </div>
et celui JS :
<script type="text/javascript"> var w, img = document.getElementById('imgTime'), title = img.title, alt = img.alt; var initialize = function(){ l = (window.innerWidth) ? window.innerWidth : ((document.body && document.body.offsetWidth)?document.body.offsetWidth : 1000); w = Math.ceil(l/24-2)*24; var divs = document.getElementById('tblH').getElementsByTagName('div'); for(i=0; i<divs.length; i++){ divs[i].style.width = (w/24)+'px'; } setDTBarre(); } var setDTBarre = function() { var date = new Date(); var h = date.getHours(); var m = date.getMinutes(); var Min = (h*60)+m ; var p = Min/(24*60)*w; img.style.width = p+"px"; img.title = title.replace(/\#H/g, h).replace(/\#M/g, m); img.alt = alt.replace(/\#H/g, h).replace(/\#M/g, m); window.setTimeout(setDTBarre, 60*1000); } initialize(); </script>

Pour tout ce qui est des paramètres HTML/CSS utilisés, je te laisse fouiller dans le code ;)

Voili, voilou ^^ Amuses toi bien ;)
Photo de foldi3 Message publié le samedi 13 février 2010 - 18h05 par foldi3.
Hé ben alors la...
je sais pas comment te remercier....

C'est vraiment sympa à toi d'avoir pris le temps de faire sa pour moi vraiment....

Je te remercie mille fois.

Julien
Photo de foldi3 Message publié le dimanche 14 février 2010 - 13h02 par foldi3.
salut bonjour

J'ai juste une petite question à propos de ton script,est-ce que je peux mettre la longeure de mon image en fesant comme tu à fais avec l'heure "width=#Wpx" ?

j'ai fait cela mais sa ne fonctionne pas :

<div id="tblTime"> <img id="imgTime", width="#Wpx" src="./image/green_bar.gif" alt="#H : #M" title="il est #H Heure et #M minutes" style="height:30px;" /> </div> <div style="text-align:center;margin:auto;"> D'autres idées de codes <a href="http://4code.fr/" title="plateforme de script et tutos Web">par ici</a> ;) @+ </div> </body> <script type="text/javascript"> var w, img = document.getElementById('imgTime'), title = img.title, alt = img.alt, width = img.width ; var initializeHour = function(){ l = (window.innerWidth) ? window.innerWidth : ((document.body && document.body.offsetWidth)?document.body.offsetWidth : 1000); w = 1600; var divs = document.getElementById('tblH').getElementsByTagName('div'); for(i=0; i<divs.length; i++){ divs[i].style.width = (w/24)+'px'; } setDTBarre(); } var setDTBarre = function() { var date = new Date(); var h = date.getHours(); var m = date.getMinutes(); var Min = (h*60)+m ; var p = Min/(24*60)*w; var tp = 7*60; tp = tp/(24*60)*w; p = p-tp; p = Math.round(p*1); //img.style.width = p+"px"; img.width = width.replace(/#W/g, p); img.title = title.replace(/\#H/g, h).replace(/\#M/g, m); img.alt = alt.replace(/\#H/g, h).replace(/\#M/g, m); window.setTimeout(setDTBarre, 60*1000); } initializeHour(); </script> </html>

Merci d'avance et une très bonne journée

Julien
Photo de nours312 Message publié le dimanche 14 février 2010 - 13h56 par nours312. modérateur nours312.com -- je ne suis pas codeur bénévol, mais j'aide gratos ;)
nan, c'est pas bien ce que tu as fait ^^

j'ai utilisé les regex pour utiliser un pseudo template basé sur certains attributs de ton Elements, pour influer sur un attribut comme width, il est bien plus simple de le mettre directement, on a pas besion de base

img.width = p+'px' ; // on sais que dans l'attribut, il n'y aura que la valeur et son unité (px) ... et c'est bien plus léger pour le navigateur !!

après, je n'ai pas bien compris ce que tu voulais faire avec tp ... si tu veux enlever des heures, pour que ta barre ne soit active que de tel heure à tel heure, il faut t'y prendre autrement ^^ :D

explainMe ;)
Photo de foldi3 Message publié le dimanche 14 février 2010 - 14h03 par foldi3.
Salut

Oui je voulais pouvoir activer mon heure de par ememple 07h le matin à 17h le soir et sachant qu'il faut que je puisse modifier les heure comme bon me semble. Par ememple en mettant start le matin et stop le soir.

j'aurais du etre plus claire dès le départ p-e.... :$

Salutations

Julien
Photo de nours312 Message publié le dimanche 14 février 2010 - 23h01 par nours312. modérateur nours312.com -- je ne suis pas codeur bénévol, mais j'aide gratos ;)
veux tu tout en Js, ou on continu avec un mélange php/js ... ?

bon, à tout hasard, je te monte tout en JS (donc penses à virer la boucle while php ;)

<script type="text/javascript"> var w, plageHoraire, img = document.getElementById('imgTime'), title = img.title, alt = img.alt, divTemplate = "<div class='repereHeure' style='width:#Wpx'>#I |</div>", startTimer=12, stopTimer=20; var initializeHour = function(){ l = (window.innerWidth) ? window.innerWidth : ((document.body && document.body.offsetWidth)?document.body.offsetWidth : 1000); plageHoraire = stopTimer-startTimer; w = Math.ceil(l/plageHoraire-2)*plageHoraire; for(i=startTimer+1; i<=stopTimer; i++){ document.getElementById('tblH').innerHTML += divTemplate.replace(/\#I/g, i).replace(/\#W/g, (w/plageHoraire)); } setDTBarre(); } var setDTBarre = function() { var date = new Date(); var h = date.getHours(); var m = date.getMinutes(); var Min = (h*60)+m ; Min = (Min>(stopTimer*60)) ? plageHoraire*60 : ((Min<=(startTimer*60)) ? 0 : Min-(startTimer*60)); var p = Min/(plageHoraire*60)*w; img.style.width = p+"px"; img.title = title.replace(/\#H/g, h).replace(/\#M/g, m); img.alt = alt.replace(/\#H/g, h).replace(/\#M/g, m); window.setTimeout(setDTBarre, 60*1000); } initializeHour(); </script>

Actuellement, je l'ai calé sur une plage Horaire de 12 à 20 Heures ...

C'est surement optimisable, mais c'est vite fait, et ça à le mérite de fonctionner ^^ Démo du script de gestion des heures en JS

@++
Photo de nours312 Message publié le dimanche 14 février 2010 - 23h11 par nours312. modérateur nours312.com -- je ne suis pas codeur bénévol, mais j'aide gratos ;)
Modif de la fonction initializeHour()

var initializeHour = function(){ l = (window.innerWidth) ? window.innerWidth : ((document.body && document.body.offsetWidth)?document.body.offsetWidth : 1000); plageHoraire = stopTimer-startTimer; w = (Math.ceil(l/plageHoraire)-5)*plageHoraire; for(i=startTimer+1; i<=stopTimer; i++){ document.getElementById('tblH').innerHTML += divTemplate.replace(/\#I/g, i).replace(/\#W/g, (w/plageHoraire)); } setDTBarre(); }

Dsl, il y avait un Bug sur le dimensionnement des div, et parfois ça marchais mal ;)
Photo de foldi3 Message publié le lundi 15 février 2010 - 09h40 par foldi3.
Salut salut

Je t'ai remi une image de ce que je veux faire exactement ce sera surement plus claire comme sa...
Et pour répondre à ta question étant donner que le php ne me pose pas trop de problème je préfère un script js et php ;-)

Sa me gêne un peux de te demander tout sa mais c vraiment super simpa de ta part.

http://hold-em-poker.ch/images/time.JPG

Salutations

Julien
Photo de nours312 Message publié le lundi 15 février 2010 - 15h41 par nours312. modérateur nours312.com -- je ne suis pas codeur bénévol, mais j'aide gratos ;)
Oki !.........

Ben ça change pas mal de choses !...

Faut tout reprendre à la base là !...

Bon, je regarde ce que je peux faire ... le soucy, c'est que je n'en vois pas spécialement l'interet, mais tu dois avoir une raison ^^

@+
Photo de foldi3 Message publié le lundi 15 février 2010 - 16h28 par foldi3.
Salut

C'est pour indiquer le temps de travail de chaque personne, je pense par la suite que chacun des employer arrivera le matin et mettra start (la le temp commence à compter) et il mettra stop à la fin de la journée et lorsque il prend sa pause de midi. le systeme d'affichage en vert me semble une bonne solution pour avoir un vue d'ensemble de la journée!

Salutations

Julien

liste des forums liste des discussions Participer à la discussion

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.

Les 5 dernières discussions