PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#26 09-01-2012 00:05:36

malabarbe
Membre
Inscription : 27-02-2010
Messages : 27

Re : Rafraichir variable

Bien vu Grand Maitre,

Je n'ai pas réussi avec la routine de Pierrot.

On va faire plus simple :

J'écrit mon compteur dans un fichier txt
il comprends le nombre "12345".

Le seul truc que je demande, c'est d'afficher ce
que contiens le txt avec un rafraichement
toutes les minutes !

Sachant que le txt est mis à jour de lui-même.

A vous lire.

Hors ligne

#27 09-01-2012 01:33:58

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Rafraichir variable

ma routine ne fonctionne pas ???

majcompteur.php devient :


   $filename = "tonfichiercompteur.txt";
   $handle = fopen($filename, "r");
   $contents = fread($handle, filesize($filename));
   fclose($handle);
   echo $content;
 

a++

Hors ligne

#28 09-01-2012 01:43:50

malabarbe
Membre
Inscription : 27-02-2010
Messages : 27

Re : Rafraichir variable

Cela, lire le compteur je sais faire !

Ou est la notion de rafraichement dans ton code.

J'ai la nette impression de me faire ballader
dans une spirale infernale !!!

Hors ligne

#29 09-01-2012 02:05:06

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Rafraichir variable

Dans le fichier d'appel html en javascript avec la fonction setTimeout()..


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#30 09-01-2012 02:24:21

malabarbe
Membre
Inscription : 27-02-2010
Messages : 27

Re : Rafraichir variable

Vous m'avez complêtement embrouillé !

Avez-vous la possibilité de me faire parvenir
un source complet.

Simple et net :

Hors ligne

#31 09-01-2012 12:14:11

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Rafraichir variable

le code que j'ai mis devrait être fonctionnel wink
les sources sont commentées.

au onload du texte la fonction majcompeur est appelée.

<input type="text" id="compteur" value="" readonly="readonly" onLoad="majCompteur()" />


et a la fin de la fonction le rappel est défini a 60000 millisecondes ( c'est à dire une minute).

setTimeout("majCompteur()",60000); // rappel la function majCompteur() dans 60000 millisecondes

le texte est mis a jour de cette façon :

document.getElementById('compteur').value = xhr.responseText;


j'vois pas ce que je peux faire de plus ?


a++

Hors ligne

#32 09-01-2012 18:22:34

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Rafraichir variable

pas ne news ?
a++

Hors ligne

#33 09-01-2012 18:30:43

malabarbe
Membre
Inscription : 27-02-2010
Messages : 27

Re : Rafraichir variable

Bonsoir Pierrot,

Je suis complêtement perdu avec tous ces bouts de codes.

Je ne sais plus le bout qui va devant !

Hors ligne

#34 09-01-2012 18:58:39

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Rafraichir variable

au onload du texte la fonction majcompeur est appelée.

<input type="text" id="compteur" value="" readonly="readonly" onLoad="majCompteur()" />


et a la fin de la fonction le rappel est défini a 60000 millisecondes ( c'est à dire une minute).

setTimeout("majCompteur()",60000); // rappel la function majCompteur() dans 60000 millisecondes

le texte est mis a jour de cette façon :

document.getElementById('compteur').value = xhr.responseText;

comprends tu ça ?

a++

Hors ligne

#35 09-01-2012 23:15:27

malabarbe
Membre
Inscription : 27-02-2010
Messages : 27

Re : Rafraichir variable

Peut tu me redonner le code final dans le bon sens
sans la fonction d'écriture.

A te lire.

Hors ligne

#36 10-01-2012 06:57:51

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Rafraichir variable

Voila ta page HTML ou php


<html>
  <head>
    <title>test Ajax</title>
    <script type='text/JavaScript'>
      function getXhr(){
        var xhr = null;
        if(window.XMLHttpRequest) // Firefox et autres
           xhr = new XMLHttpRequest();
        else if(window.ActiveXObject){ // Internet Explorer
           try {
          xhr = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
          xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
        }
        else { // XMLHttpRequest non supporté par le navigateur
           alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
           xhr = false;
        }
        return xhr;
      }
     
      /**
      * Méthode qui sera appelée quand l'imput text sera chargé et par la suite toutes les 60000 millisesondes
      */
      function majCompteur(){
        var xhr = getXhr()
        // On défini ce qu'on va faire quand on aura la réponse
        xhr.onreadystatechange = function(){
          // faire quelque chose que si tout reçu et que le serveur est ok
          if(xhr.readyState == 4 && xhr.status == 200){
            //alert(xhr.responseText);
                                                // affichage de la nouvelle valeur dans l'input text ayant l'id "compteur"
            document.getElementById('compteur').value = xhr.responseText;
          }
        }
        xhr.open("GET","majcompteur.php",true);
        xhr.send(null);
        setTimeout("majCompteur()",60000); // rappel la function majCompteur() dans 60000 millisecondes
      }
    </script>
  </head>
  <body>
    <!-- l'objet text qui contiendra la valeur du compteur -->
    <input type="text" id="compteur" value="" readonly="readonly" onLoad="majCompteur()" />
  </body>
</html>
 

le fichier majcompteur.php qui est appelé dans la fonction javascript majcompteur de ta page.


  // le fichier compteur.txt est modifier pas un autre processus
  $filename = "compteur.txt";
  $handle = fopen($filename, "r");
  $contents = fread($handle, filesize($filename));
  fclose($handle);
  echo $content;
 

Voila, tu creer ces 2 fichiers, tu les met dans un répertoir de ton serveur et tu essay, ca devrai fonctionner
tu crée d'abord  le fichier compteur.txt avec une valeur quelquonque.
tu verra, si tu modifi le fichier compteur.txt le rafraichissement suivant affichera bien la nouvelle valeur.

Bon courage.

Hors ligne

#37 10-01-2012 10:03:41

malabarbe
Membre
Inscription : 27-02-2010
Messages : 27

Re : Rafraichir variable

Bonjour Pierrot,

Merci pour le code.

J'ai tout bien fait, mais cela ne tourne pas !

J'ai fais des points tests

      function majCompteur(){
alert("Passe - 2");
        var xhr = getXhr()
        // On défini ce qu'on va faire quand on aura la réponse
        xhr.onreadystatechange = function(){
          // faire quelque chose que si tout reçu et que le serveur est ok
          if(xhr.readyState == 4 && xhr.status == 200){
           // alert(xhr.responseText);
                                                // affichage de la nouvelle valeur dans l'input text ayant l'id "compteur"
            document.getElementById('compteur').value = xhr.responseText;
          }
        }
alert("Passe - 3");
        xhr.open("GET","majcompteur.php",true);
        xhr.send(null);
        setTimeout("majCompteur()",20000); // rappel la function majCompteur() dans 60000 millisecondes
      }
    </script>
  </head>
  <body bgcolor="#000000">
 
<script type='text/JavaScript'>
alert("Passe - 0");
</script>

Seul le passe - 0 s'affiche pourquoi pas les autres ?

A vous lire.

Hors ligne

#38 10-01-2012 11:19:39

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : Rafraichir variable

parce que la fonction majcompteur n'est pas appelée.


tu doit l’appeler au moins une fois.
de ces 2 façons :

<input type="text" id="compteur" value="" readonly="readonly" onLoad="majCompteur()" />

ou a la place de ton alert 0 majCompteur()

a++

Hors ligne

Pied de page des forums