Partage
  • Partager sur Facebook
  • Partager sur Twitter

setinterval

    24 décembre 2009 à 0:52:05

    Bonsoir,

    L'histoire a débuté dans un autre sujet mais ce problème n'a rien avoir avec l'autre sujet.

    le setinterval ne fonctionne pas, de nouvelle information rentre et rien n'est rafraichis.

    code de la page contenant le ajax :

    <div id="content">
    
    <body onLoad="plop()">
    <script type="text/javascript">
    
    function plop() {
            var xhr_object = null;
            
            if (window.XMLHttpRequest) {
               xhr_object = new XMLHttpRequest();
    					 }
            else {
                    if (window.ActiveXObject) {
                            xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    												}
                    else 
                            {
                            alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
                            return;
                            }
                   }
            var filename = "requete.php";
            xhr_object.onreadystatechange = function ()  {
                    if (xhr_object.readyState == 4 && (xhr_object.status == 200 || xhr_object.status == 0)) {
                            var reponse = xhr_object.responseText; 
                            document.getElementById("content").innerHTML = reponse;
                      }      
                    } 
                 xhr_object.open("get", filename, true);
                 xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    				     xhr_object.send(null);
            }
    				setInterval(plop, 1);
    	</script>
    	</div>
    


    Voici le code de la page requete.php
    <?php
    
    include('site.php');
    $req= mysql_query("SELECT * FROM lv ORDER BY id DESC");
    while ($donnee= mysql_fetch_array($req)) {
    $description= mb_convert_encoding(htmlentities($donnee['description']), "UTF-8", "ISO-8859-1");
    $url= htmlentities($donnee['url']);
    $pseudo= htmlentities($donnee['pseudo']);
    $nd= mb_convert_encoding(htmlentities($donnee['nd']), "UTF-8", "ISO-8859-1");
    if ($donnee['op']=="ajout" OR $donnee['op']=="accept" OR $donnee['op']=="refus") {
    echo "" . date('d/m/Y H:i:s',  $donnee['date']) . " : " . $donnee['op'] . " => " . $url . " : " . $description  . " dans " . $donnee['lieu'] . " par " . $pseudo . " avec l'IP "  . $donnee['ip'] . "<br />";
    }
    elseif ($donnee['op']=="modif") {
    echo "" . date('d/m/Y H:i:s',  $donnee['date']) . " : " . $donnee['op'] . " => " . $url . " : " . $description  . " => " . $nd . " dans " . $donnee['lieu'] . " par " . $pseudo . " avec l'IP " . $donnee['ip'] . "<br />";
    }
    elseif ($donnee['op']=="change") {
    echo "" . date('d/m/Y H:i:s',  $donnee['date']) . " : " . $donnee['op'] . " => " . $url . " : " . $description  . " dans " . $donnee['lieu'] . " => " . $donnee['nl'] . " par " . $pseudo . " avec l'IP " . $donnee['ip'] . "<br />";
    }
    elseif ($donnee['op']=="suppression") {
    echo "" . date('d/m/Y H:i:s',  $donnee['date']) . " : " . $donnee['op'] . " => " . $url . " : " . $description  . " dans " . $donnee['lieu'] . " par " . $pseudo . " avec l'IP " . $donnee['ip'] . "<br />";
    }
    elseif ($donnee['op']=="ident") {
    echo "" . date('d/m/Y H:i:s',  $donnee['date']) . " : " . $donnee['op'] . " => " . $donnee['lieu'] . " par " . $pseudo . " avec l'IP " . $donnee['ip'] . "<br />";
    }
    }
    ?>
    


    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      24 décembre 2009 à 5:41:34

      je crois qu'il faut mettre de guillemet a plop et des parentaise aprés plop pour que sa fonctionne dans ton setInterval sinon essaye de faire un onload sur ton body et de faire une nouvel fonction genre:
      function tempo(){
          Timer = setInterval("plop()",1);
      }
      
      • Partager sur Facebook
      • Partager sur Twitter
      $2b||!$2b
        24 décembre 2009 à 10:34:23

        J'ai essayé ça ne fonctionne pas en faite une requete php plus haut bloquais le refraichissement.

        Mais il y a un truc que je comprend pas.

        Pourquoi faut'il mettre un div id=content ?

        Merci
        • Partager sur Facebook
        • Partager sur Twitter
          24 décembre 2009 à 11:49:58

          Ps: Tu crois mal skuti.
          setInterval s'utilise comme il a fait.


          Mais, 1ms c'est vraiment trop peu.

          Supprimes ton interval, et mets un setTimeout au moment où tu récupères la réponse de l'ajax.

          genre :

          xhr.onreadystatechange .. {
          	..
          	truc.innerHTML = machin;
          	setTimeout(maFonction, 1000); //1 sec est suffisant.
          	..
          };
          



          Et pourquoi ton div id="content" est en dehors du body ? Et pourquoi y'a pas de </div> ?
          • Partager sur Facebook
          • Partager sur Twitter
            24 décembre 2009 à 22:29:09

            Ben c'est mon ordi qui dois bloquer alors parceque moi comme il fais sa marche pas mais comme je fais sa marche nikel :p
            • Partager sur Facebook
            • Partager sur Twitter
            $2b||!$2b
              24 décembre 2009 à 22:41:37

              Bah c'est que tu fais : setInterval(truc(), x); je suppose.
              • Partager sur Facebook
              • Partager sur Twitter
                25 décembre 2009 à 7:38:00

                ben je fais exactement comme je l'ai montré plus haut ^^
                • Partager sur Facebook
                • Partager sur Twitter
                $2b||!$2b

                setinterval

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown