Timer + refresh + checkbox

Timer + refresh + checkbox - HTML/CSS - Programmation

Marsh Posté le 28-09-2005 à 16:33:31    

Bonjour à tous, je débute en javascript :sweat:  
 
je shouaite par le biais d'un checkbox faire que ma page se rafraichisse automatiquement toutes les 5 s.
Le code suivant fonctionne mais comment garder ma checkbox cochée une fois ma page rafraichis et comment pouvoir relancer la fct onclick  :??:  :??:  :??: .
 
Avez vous une idée.
 

Code :
  1. <INPUT TYPE="checkbox"  onclick="Timer()"> Rafraichissement auto (~ 30 s).<BR>
  2. <SCRIPT>
  3. function Timer() {
  4. window.setTimeout("window.location.reload(true)",5000);
  5. }
  6. </SCRIPT>


 
merci d'avance


Message édité par ZZZzzz le 28-09-2005 à 16:57:07
Reply

Marsh Posté le 28-09-2005 à 16:33:31   

Reply

Marsh Posté le 28-09-2005 à 17:00:03    

Passe une argument dans l'url (passage d'argument en GET).
 
Il te suffit de verifier la presence de cet argument via PHP ou Javascript pour cocher la case au chargement.
 
Mieux : tu fais un petit formulaire evec une checkbox et un bouton valider avec la page courante comme action du formulaire. Avec PHP tu envoies ensuite le header qui permet de faire une redirection apres un certains temps dans le cas ou les données du formulaire indique que la case avait ete cochée !
Interet ? Tu as un rafraichissement toutes les x secondes sans utilsier de javascript =)

Reply

Marsh Posté le 28-09-2005 à 17:09:02    

:??:  :??:  olla un petit bout de code serais le bien venu  :)  
 
mais sinon revoilou du code qui montre dans quel direction je veut aller, mais le if péte aparament checkbox n'est pas initialisé ???
 

Code :
  1. <form name="refresh">
  2. <INPUT TYPE="checkbox" onclick="Timer();return true;"> Rafraichissement auto (~ 30 s).<BR>
  3. </form>
  4. <SCRIPT>
  5. <!--
  6. function Timer() {
  7.  if (document.forms["refresh"].checkbox.checked )
  8. {
  9. window.setTimeout("window.location.reload(true)",30000);
  10. }
  11. }
  12. //-->
  13. </SCRIPT>


Message édité par ZZZzzz le 28-09-2005 à 17:10:48
Reply

Marsh Posté le 28-09-2005 à 17:24:06    

Un genre de truc comme ca :

Code :
  1. <?php
  2. if (isset($_GET['refresh']) && $_GET['refresh']=='oui')
  3.  header("Refresh: 10; URL=http://cette_page.php?refresh=oui" );
  4. ?>
  5. <html>
  6. [...]
  7. <body>
  8. <?php
  9.  if (isset($_GET['refresh']) && $_GET['refresh']=='oui')
  10.  {
  11. ?>
  12. <form action="cette_page.php" method="get">
  13.  <fieldset>
  14.   <legend>Stopper le rafraichissement automatique</legend>
  15.   <input type="submit" name="refresh" value="non" />
  16.  </fieldset>
  17. </form>
  18. <?php
  19.  } else {
  20. ?>
  21. <form action="cette_page.php" method="get">
  22.  <fieldset>
  23.   <legend>Rafraichissement automatique</legend>
  24.   <input type="submit" name="refresh" value="oui" />
  25.  </fieldset>
  26. </form>
  27. <?php
  28.  }
  29. ?>
  30. <p>
  31.  Bla bla bla bla
  32. </p>
  33. </body>


Qui rafraichit toutes les 10s la page.
A adapter a tes besoins EVIDEMMENT pour que ca corresponde a ce que tu souhaites exactement. Ce n'est la qu'une piste !


Message édité par afbilou le 28-09-2005 à 17:29:12
Reply

Marsh Posté le 28-09-2005 à 17:32:24    

Sans PHP, il est possible de faire :

<html>
<head>
<script language=javascript>
function set_checkbox()
{
   if (location.search.indexOf("?ck=1" ) != -1)
      document.f1.ck.checked=true;
   else
      document.f1.ck.checked=false;
}
</script>
</head>
<body onload="set_checkbox()">
<form name="f1">
<INPUT TYPE="checkbox" name="ck" onclick="Timer()"> Rafraichissement auto (~ 30 s).<BR>  
</form>              
<SCRIPT>  
function Timer()
{  
  if (document.f1.ck.checked == true)
     window.setTimeout("window.location.href=\"refresh1.htm?ck=1\"",2000);  
  else
     window.location.href="refresh1.htm";
}  
</SCRIPT>
</body>
<html>

Reply

Marsh Posté le 28-09-2005 à 17:35:04    

Beurk :)
Tout mal codé, et si le client n'as pas de Javascript il l'a dans l'os :)

Reply

Marsh Posté le 28-09-2005 à 17:45:31    

J'explique mon "Beurk ... tout mal codé"
 
1. <script language=javascript>
Il faut mettre <script type="text/javascript">
 
2. document.f1.ck.checked
L'acces a un element du document se fait via son ID et document.getElementById
 
3. onload() dans le body
Idealement il faut separer le code HTML du code javascript
Le onload ne doit donc pas figurer dans le document HTML et encore moins dans le body :)
Il faut prefere faire appel a un script javascript externe.
 
4. Utilisation d'un form
Pourquoi utilises tu un form ? ... C'est typiquement le cas ou ca ne sert a rien et ou ce n'est sémantiquement pas adapté :|
Il suffit de creer un <button></button> dans ton document et de gérer les cliques via un script Javascript externe.
 
5. Encore un script en fin de page.
Si ta page fait 500 lignes ... tu vas devoir chercher LA ligne ou t'as foutu ton pov JS isolé, noyé, esseulé dans ton code HTML :/
D'autant plus que tu ne precises pas le type de script la encore :/

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed