IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] Rafraichir Div uniquement si nécessaire


Sujet :

JavaScript

  1. #1
    sff
    sff est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 14
    Par défaut [AJAX] Rafraichir Div uniquement si nécessaire
    Bonjour à tous,

    Cela fait plusieurs semaine que je cherche à résoudre mon problème.

    Actuellement le code js de la page text.php, permet de rafraichir toute les 2 secondes, la page test2.php dans une div. Jusque la rien de compliqué. Ce que je cherche à faire, c'est de recharger toute les 2 secondes la page test2.php dans le div, uniquement si test2.php à été modifié (si le echo est différent par exemple).

    Histoire de ne pas utiliser inutilement de la ressource en permanence.


    Page test2.php avec un echo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
     
    echo 'texte';
     
    ?>
    Page test.php avec le js et la div qui affiche test2.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    <html>
     
    <script type="text/javascript"> 
     
     
    // Fonction pour Ajax
     
    function getXMLHTTP()
    {
        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)
             {
                    try
                    {
                           xhr = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    catch (e1)
                    {
                         xhr = null;
                    }
             }
         }
         else
            alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
       return xhr;
    }
     
    // Div refresh.
     
    function getDiv1(MyDiv, MyUrl) { 
     
    var xmlhttp1 = null;  
     
    	var mondiv1 = document.getElementById(MyDiv); 
     
    	if (!mondiv1) { 
      		return 1; 
      	} 
     
        if (xmlhttp1 && xmlhttp1.readyState != 0) { 
            xmlhttp1.abort(); 
    	} 
     
    	xmlhttp1 = getXMLHTTP(); 
     
        if (xmlhttp1) { 
     
    		xmlhttp1.open("GET", MyUrl, true);  
     
         	/* on définit ce qui doit se passer quand la page répondra */ 
     
          	xmlhttp1.onreadystatechange = function() { 
     
          		if (xmlhttp1.readyState == 4 && xmlhttp1.responseText != '') /* 4 : état "complete" */ { 
     
    			mondiv1.innerHTML = xmlhttp1.responseText; 
     
          		}
    		} 
     
          	xmlhttp1.send(null); 
         } 
    }
     
    function rafraichir()
    {		
      getDiv1('test2', 'test2.php');
      setTimeout("rafraichir()", 2000);
     
    }
    window.onload = function() { rafraichir();}
     
     
    </script>
     
    </script> 
    <body> 
    <DIV ID="test2">
    </div>
    </body> </html>
    Merci à tous ceux qui pourront m'aider.

  2. #2
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    bah il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    <html>
     
    <script type="text/javascript"> 
     
     
    // Fonction pour Ajax
     
    function getXMLHTTP()
    {
        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)
             {
                    try
                    {
                           xhr = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    catch (e1)
                    {
                         xhr = null;
                    }
             }
         }
         else
            alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
       return xhr;
    }
     
    // Div refresh.
     
    function getDiv1(MyDiv, MyUrl) { 
     
    var xmlhttp1 = null;  
     
    	var mondiv1 = document.getElementById(MyDiv); 
     
    	if (!mondiv1) { 
      		return 1; 
      	} 
     
        if (xmlhttp1 && xmlhttp1.readyState != 0) { 
            xmlhttp1.abort(); 
    	} 
     
    	xmlhttp1 = getXMLHTTP(); 
     
        if (xmlhttp1) { 
     
    		xmlhttp1.open("GET", MyUrl, true);  
     
         	/* on définit ce qui doit se passer quand la page répondra */ 
     
          	xmlhttp1.onreadystatechange = function() { 
     
          		if (xmlhttp1.readyState == 4 && xmlhttp1.responseText != '') /* 4 : état "complete" */ { 
     
    			if(mondiv1.innerHTML != xmlhttp1.responseText)
                            {
                                  mondiv1.innerHTML = xmlhttp1.responseText;
                            }
     
          		}
    		} 
     
          	xmlhttp1.send(null); 
         } 
    }
     
    function rafraichir()
    {		
      getDiv1('test2', 'test2.php');
      setTimeout("rafraichir()", 2000);
     
    }
    window.onload = function() { rafraichir();}
     
     
    </script>
     
    </script> 
    <body> 
    <DIV ID="test2">
    </div>
    </body> </html>

  3. #3
    sff
    sff est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 14
    Par défaut suite
    Oui ca fonctionne quand c'est un simple echo 'text' par exemple

    Mais ca rafraichir toute les 2 secondes tant que j'ai des caractères html dans le echo

    du genre echo "&eacute;";

    et aussi quand j'ai des balise span de ce genre :


    echo "<span class=\'class\'>text</span>";

    Il y a t'il moyen de régler ca?

  4. #4
    sff
    sff est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 14
    Par défaut suite
    Meme avec echo "<span style="margin:2px">texte</span>";

    ca ne fonctionne pas non plus. Bref avec du html ca fonctionne quasiment jamais, faut que le texte soit brut pour vraiment être sur que ca fonctionne.

    Il y a pas une solution?

Discussions similaires

  1. [AJAX] rafraichir un div
    Par micka30 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 22/04/2008, 15h21
  2. [AJAX] rafraichir div / rechargement image
    Par vince.bbob dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/04/2008, 15h15
  3. [AJAX] Rafraichir un div après validation
    Par HeadQuaker dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 11/04/2008, 14h10
  4. [AJAX] Rafraichir une image dans une div
    Par Invité dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/03/2008, 17h21
  5. [AJAX] rafraichir une div !
    Par omantherasta dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 24/12/2006, 17h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo