Partage
  • Partager sur Facebook
  • Partager sur Twitter

Actualisation d'une partie de ma page

Juste le menu

Sujet résolu
    27 février 2009 à 14:41:27

    Bonjour amis zéro,

    Voilà j'ai un léger soucis en JS (s'logique mais je précise :lol: ). Je n'y connais absolument rien en JS mais je sais qu'on peut actualiser une partie d'une page. Un ami m'a fait un script mais il ne fonctionne pas et il a des problèmes de connexion et c'est assez préssant en fait. ^^
    Voilà le code qu'il ma donné :

    var page = "menu_co.php";
    function ajax(url,target)
     {
        // native XMLHttpRequest object
       if (window.XMLHttpRequest) {
           req = new XMLHttpRequest();
           req.onreadystatechange = function() {ajaxDone(target);};
           req.open("GET", url, true);
           req.send(null);
       // IE/Windows ActiveX version
       } else if (window.ActiveXObject) {
           req = new ActiveXObject("Microsoft.XMLHTTP");
           if (req) {
               req.onreadystatechange = function() {ajaxDone(target);};
               req.open("GET", url, true);
               req.send();
           }
       }
    		   setTimeout("ajax(page,'menu')", 1000);
    }
    


    Avec cela dans la balise body :

    onload="ajax(page,'menu')"
    


    Le div que je veux recharger a bien pour id menu et il se trouve dans une page incluse qui s'appelle menu_co.php.

    Merci d'avance pour votre aide. :)
    • Partager sur Facebook
    • Partager sur Twitter
      27 février 2009 à 16:10:32

      Tu ne déclares pas ta variable req?
      var page = "menu_co.php";
      var req;
      function ajax(url,target)
       {
          // native XMLHttpRequest object
         if (window.XMLHttpRequest) {
             req = new XMLHttpRequest();
             req.onreadystatechange = function() {ajaxDone(target);};
             req.open("GET", url, true);
             req.send(null);
         // IE/Windows ActiveX version
         } else if (window.ActiveXObject) {
             req = new ActiveXObject("Microsoft.XMLHTTP");
             if (req) {
                 req.onreadystatechange = function() {ajaxDone(target);};
                 req.open("GET", url, true);
                 req.send();
             }
         }
      		   setTimeout("ajax(page,'menu')", 1000);
      }
      

      Est ce que cela ne marches pas mieux comme ça?
      • Partager sur Facebook
      • Partager sur Twitter
        27 février 2009 à 16:23:17

        pas mieux non :(
        Aucun changement à signaler.
        • Partager sur Facebook
        • Partager sur Twitter
          27 février 2009 à 16:40:48

          Ta fonction ajaxDone est elle définie? J'ai trouvé le même code sur internet et voici la fonction ajaxDone correspondante:
          }function ajaxDone(target) {
          
             // only if req is "loaded"
             if (req.readyState == 4) {
                 // only if "OK"
                 if (req.status == 200 || req.status == 304) {
                     results = req.responseText;
                     document.getElementById(target).innerHTML = results;
                 } else {
                     document.getElementById(target).innerHTML="ajax error:\n" +
                         req.statusText;
                 }
             }
          }
          

          Si tu ne l'a pas ajoutes-la à la fin de ton code javascript
          • Partager sur Facebook
          • Partager sur Twitter
            27 février 2009 à 16:52:00

            j'ai ça maintenant :

            var page = "menu_co.php";
            var req;
            }function ajaxDone(target) {
            
               // only if req is "loaded"
               if (req.readyState == 4) {
                   // only if "OK"
                   if (req.status == 200 || req.status == 304) {
                       results = req.responseText;
                       document.getElementById(target).innerHTML = results;
                   } else {
                       document.getElementById(target).innerHTML="ajax error:\n" +
                           req.statusText;
                   }
               }
            }
            function ajax(url,target)
             {
                // native XMLHttpRequest object
               if (window.XMLHttpRequest) {
                   req = new XMLHttpRequest();
                   req.onreadystatechange = function() {ajaxDone(target);};
                   req.open("GET", url, true);
                   req.send(null);
               // IE/Windows ActiveX version
               } else if (window.ActiveXObject) {
                   req = new ActiveXObject("Microsoft.XMLHTTP");
                   if (req) {
                       req.onreadystatechange = function() {ajaxDone(target);};
                       req.open("GET", url, true);
                       req.send();
                   }
               }
            		   setTimeout("ajax(page,'menu')", 1000);
            }
            


            Mais toujours rien :(
            Merci quand même de m'aider ^^

            Edit : Autant pour moi, une acolade c'était glissé avant la fonction AjaxDone et maintenant ça marche! Un grand merci à toi :D
            • Partager sur Facebook
            • Partager sur Twitter

            Actualisation d'une partie de ma page

            × 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