Jquery et fonction 'load'

Résolu
maxtheirish Messages postés 23 Statut Membre -  
Shymon Messages postés 150 Statut Membre -
Bonjour,

En Jquery, je charge une div 'corps' avec des pages PHP differentes lorsque l'on clique sur l'un des boutons de mon menu :

$('#btnMenu').click(function(){
        $('#corps').load('page.php');
});

J'aimerais savoir si il est possible de recharger ma div 'corps' avec la même page (ou le même code de la page) qui est actuellement chargé, en gardant le code PHP de la page et en restant dynamique (je ne souhaite pas faire une fonction différente pour chaque page mais plutôt une fonction qui enveloppe toute mes pages).

Si je ne suis pas assez clair je reste a disposition pour de plus amples informations.

5 réponses

  1. Shymon Messages postés 150 Statut Membre 59
     
    Si j'ai bien compris, il faudrait que tu stockes quelle page PHP est chargée dans la div pour pouvoir la rafraichir. un truc comme ça :

    // la fonction de chargement 
    $('#btnMenu').click(function(){ 
            var pagePHP = 'ma-page-PHP-à-charger.php'; 
            $('#corps').attr( 'page' ,  pagePHP ); 
            $('#corps').load( pagePHP ); 
    }); 
    
    // la fonction de rafraichissement 
    $('#btnRafraichir').click(function(){ 
            var pagePHP = $('#corps').attr( 'page'); 
            $('#corps').load( pagePHP ); 
    }); 
    
    


    ça te convient ?

    Simon
    2
    1. Shymon Messages postés 150 Statut Membre 59
       
      fait aussi gaffe à ce que le navigateur ne garde pas en cache la réponse à la requête Ajax (comme sous IE par exemple). Sinon ça ne sert plus à rien ;)
      0
    2. maxtheirish Messages postés 23 Statut Membre
       
      Parfait ! c'est exactement ce qu'il me fallait, néanmoins pour la question du cache je ne suis pas certain d'identifier le problème dont tu me parle et je t'avouerais que je ne m'y connais pas vraiment pour la gestion du cache.
      0
    3. maxtheirish Messages postés 23 Statut Membre
       
      Si tu pouvais m'éclairer sur ce problème sa serait vraiment sympa car les 3/4 des utilisateurs de mon application seront sur IE.
      0
    4. Shymon Messages postés 150 Statut Membre 59
       
      La fonction "load" de jQuery permet de faire une requête vers le serveur et de recevoir la réponse (en l'occurrence, le contenu de "corps"). Mais sous IE par exemple, les réponses aux requêtes sont mises en cache, il ne s'embête pas à aller chercher une réponse pour une requête déjà effectuée.
      Ce qui veut dire que si tu fait deux fois la même requête, tu aura deux fois la même réponse même si la page PHP à changée entre temps ... pas cool pour un rafraichissement !

      Un moyen d'éviter ça est de mettre ce code avant l'exécution de "load" :
      $.ajaxSetup ({
          cache: false
      });
      
      0
    5. maxtheirish Messages postés 23 Statut Membre
       
      Je me suis renseigné sur le sujet du coup j'ai trouvé la solution a ce niveau là, merci encore.
      0
  2. djflexlive Messages postés 577 Statut Membre 95
     
    J'ai du mal à comprendre mais tu veux simplement changer (remplacer) le contenu de #corps à chaque click des boutons du menu OU rajouter à chaque click du contenu à #corps ?
    1
  3. maxtheirish Messages postés 23 Statut Membre
     
    Concrètement, sans parler de clique, je souhaite avoir une fonction qui va me "rafraichir" ma div #corps (donc en gros remplacer la page chargée par la même) sans que j'ai besoin de savoir quel page est actuellement chargée.
    Comme le bouton actualiser du navigateur mais la c'est pour actualiser ma div #corps.
    0
  4. djflexlive Messages postés 577 Statut Membre 95
     
    Si tu veux un refresh automatique je te dirais :

    function refresh_auto() { 
    $("#corps").html("").load("page.php"); 
    } 
    setInterval("refresh_auto()", 2000); // pour un refresh à 2sec 
    

    Google est ton ami !
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. maxtheirish Messages postés 23 Statut Membre
     
    Merci d'avoir pris le temps de chercher, shymon m'a apporté la solution bonne soirée.
    0
    1. djflexlive Messages postés 577 Statut Membre 95
       
      no pb :)
      0