Partage
  • Partager sur Facebook
  • Partager sur Twitter

Actualiser un DIV

Sujet résolu
    16 avril 2009 à 17:31:57

    Bonjour,
    après quelques recherches sur le SdZ et sur Google, j'ai vu des éléments de réponses à ma question, mais rien de top... :(
    Je voulais savoir comment actualiser un DIV régulièrement (ici c'est dans le cas d'un mini chat), par exemple toute les 0.5 secondes.

    Je crois qu'il faut créer une fonction, donner un temps pour l'actualisation, et... en fait je ne sais pas :p

    Je ne connais rien (ou presque :euh: ) au JavaScript, donc s'il vous plait, essayez de ne pas me donner des réponses pour me dire "il faut faire ça puis ça...", sinon comment saurais-je le faire? ^^
    Je ne demande pas non plus spécialement un code tout fait, mais pas une réponse "fais une recherche", "il y a des tutos"... J'apprendrai un jour surement le JS, mais là pour UNE fonction... :lol:

    Merci d'avance,
    Naturalitus.
    • Partager sur Facebook
    • Partager sur Twitter
      16 avril 2009 à 17:55:40

      Beh la, en fait, c'est pas qu'une fonction, c'est de l'AJAX, donc soit environ une fonction pour créer l'objet (pour réutiliser), une fonction pour faire la requete, une fonction pour traiter la requete, et bien sur la page appellée.
      Donc cherche sur google AJAX ca sera plus simple ;) .
      • Partager sur Facebook
      • Partager sur Twitter
        16 avril 2009 à 18:28:32

        A commencer par le site du zéro:
        Tutoriel Ajax
        • Partager sur Facebook
        • Partager sur Twitter
          16 avril 2009 à 19:59:48

          tu aurrais aussi pue chercher mieux sur le SDZ ^^
          http://www.siteduzero.com/forum-83-390 [...] secondes.html

          sache que le temp doit etre en milisecond donc
          si je me trompe pas : 0.5sec = 500 milliseconde
          • Partager sur Facebook
          • Partager sur Twitter
            16 avril 2009 à 21:08:13

            Merci pour vos réponses.
            Cependant je n'y arrive pas (Serais-je nul? :-° )
            Je me suis créé une page minichat.php (car on doit inclure une page dans le div -avec le lien de angelus76-), dont voici le code :
            <?php
            
            $reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,10");
            
            while ($donnees = mysql_fetch_array($reponse) )
            {
            ?>
             
            <p><strong><?php echo stripslashes($donnees['pseudo']); ?></strong> : <?php echo stripslashes($donnees['message']); ?></p>
             
            <?php
            }
            
            ?>
            

            Cette page permet donc d'afficher les dix derniers messages.
            Ensuite, dans le <head>, j'ai mis le code JavaScript du lien de angelus76 :
            <script type="text/javascript">
                 URL = "minichat.php";
            
                 var xhr=null;
                 <!-- Fonction page 1 -->
                 function rafraichir() 
                 {
                    if (window.XMLHttpRequest) xhr = new XMLHttpRequest();
                    else if (window.ActiveXObject) xhr = new ActiveXObject('Microsoft.XMLHTTP');
                    else alert('JavaScript : votre navigateur ne supporte pas les objets XMLHttpRequest...');
                    xhr.open('GET',URL,true);
                    xhr.onreadystatechange = ajaxReponse;
                    xhr.send(null);
                 }
            
                 function ajaxReponse() 
                 {
                    if (xhr.readyState == 4) 
                    {
                            document.getElementById("pageRefrech",true).innerHTML=xhr.responseText;
                            var timer=setTimeout(rafraichir,500);
                    }
                 }
                 </script>
            

            J'ai aussi pensé à nommer mon DIV "pageRefrech" et il ne contient aucun code.

            Rien ne s'affiche dans le DIV, voilà mon problème.

            Ce que j'aurai aimé faire au début, mais apparemment pas possible, c'est faire un DIV contenant mon code permettant d'afficher les messages, et de faire une fonction JS par exemple demandant au DIV de se recharger tous les X secondes, ainsi mysql redemande à la BDD les messages, et tout se réaffiche...
            Si quelqu'un pouvait m'aider :)

            Merci,

            Naturalitus
            • Partager sur Facebook
            • Partager sur Twitter
              17 avril 2009 à 12:22:30

              UP svp :)
              Je bloque depuis hier et j'ai vraiment besoin d'aide sur ce coup ;)

              Merci d'avance
              Naturalitus
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                17 avril 2009 à 12:34:10

                Bonjour,
                1) Il te faut ta base de données qui ecrit les données sur un fichier intermediaire (xml, txt, ...)
                2) Avec ajax tu recuperes les données du fichiers intermediaire.
                3) Tu dois les afficher avec la methode du xhr ;)
                Et une fois cela fait tu dois t'occuper d'une page de traitement
                a laquelle une autre fonction js envoie les données.

                http://gael-donat.developpez.com/web/intro-ajax/
                • Partager sur Facebook
                • Partager sur Twitter
                  17 avril 2009 à 12:56:51

                  tu aurrais pas oublier la connection a mysql dans ta page " minichat.php " ?
                  parce que je le voie pas.

                  si ce n'est pas le cas, tu as le moyen de tester le script en essyent d'afficher une page " .HTML "
                  - si cette foix ci sa n'apparas pas c'est que la fonction a un probleme " ce qui m'etonerais vue que pour moi sa marche encore ^^ "
                  - sinon c'est ta page php qui ne va pas

                  Edit : pensse a reguarder la console d'erreur.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    17 avril 2009 à 14:57:12

                    Merci encore pour toutes vos réponses.

                    Angelus76 : Tout d'abord j'avais mis un mauvais url (il manquait un dossier!).
                    Ensuite j'ai corrigé ça et ça ne marchait toujours pas...
                    Donc j'ai testé avec un "test.html", toujours rien...
                    Je ne pense pas que ça vienne de la connection sql : elle est incluse dans la page "admin.php" ou est affichée normalement le minichat... J'ai quand même essayé en coupant la connection avant et en la rouvrant dans la page minichat.php, mais ça ne marche pas non plus.

                    Je fais souvent des erreurs toutes bêtes, ça doit encore être ça ^^

                    J'vais chercher encore un peu, au pire j'en fais un avec un bouton pour actualiser, mais ça risque d'être pire :p

                    EDIT : Lorsque je regarde la source de la page, le DIV est complètement vide.


                    Merci,
                    Naturalitus
                    • Partager sur Facebook
                    • Partager sur Twitter
                      17 avril 2009 à 21:21:15

                      salut
                      autant pour moi c'est pas complet :D

                      en fait en fin de script tu doit fair appele a la fonction ^^

                      donc l'exemple complet serrais :
                      Ta page ;
                      <?php
                      
                      $reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,10");
                      
                      while ($donnees = mysql_fetch_array($reponse) )
                      {
                      ?>
                       
                      <p><strong><?php echo stripslashes($donnees['pseudo']); ?></strong> : <?php echo stripslashes($donnees['message']); ?></p>
                       
                      <?php
                      }
                      
                      ?>
                      

                      La Fonction Javascript;
                      <script type="text/javascript">
                           URL = "minichat.php";
                      
                           var xhr=null;
                           <!-- Fonction page 1 -->
                           function rafraichir() 
                           {
                              if (window.XMLHttpRequest) xhr = new XMLHttpRequest();
                              else if (window.ActiveXObject) xhr = new ActiveXObject('Microsoft.XMLHTTP');
                              else alert('JavaScript : votre navigateur ne supporte pas les objets XMLHttpRequest...');
                              xhr.open('GET',URL,true);
                              xhr.onreadystatechange = ajaxReponse;
                              xhr.send(null);
                           }
                      
                           function ajaxReponse() 
                           {
                              if (xhr.readyState == 4) 
                              {
                                      document.getElementById("pageRefrech").innerHTML=xhr.responseText;
                                      var timer=setTimeout(rafraichir,500);
                              }
                           }
                      rafraichir();  // C'est cette ligne qu'il manquer
                           </script>
                      


                      toutte mes excuse pour le desagrement.

                      PS: que le div soit vide dans la source du navgateur est tout a fait normale vue quelle est remplie par javascript ;)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        17 avril 2009 à 22:16:32

                        Ca marche mieux comme ça :)
                        Mais seulement quand il y a une erreur :p
                        Par exemple je me suis trompé dans l'url : ça m'a inclu la page d'erreur personnalisée ^^ et après avec la bonne adresse, erreurs sql d'affichées...
                        Maintenant tout fonctionne, mais ça n'affiche RIEN :D
                        Enfin je crois que la vous pouvez plus grand chose pour moi ;)

                        Merci encore :)

                        EDIT : Ca marche sous Firefox mais pas sous IE ;) voilà l'explication :p

                        Angelus76, pas la peine de t'excuser pour le "désagrément", tu m'aides et c'est très simpa de ta part, ensuite si tu oublie quelque chose.... pas grave :)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          18 avril 2009 à 19:05:57

                          J'ai le même problème cela inclut la page
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Actualiser un DIV

                          × 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