Jquery et fonction 'load'

Résolu
maxtheirish Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   -  
Shymon Messages postés 145 Date d'inscription   Statut Membre Dernière intervention   -
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

Shymon Messages postés 145 Date d'inscription   Statut Membre Dernière intervention   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
Shymon Messages postés 145 Date d'inscription   Statut Membre Dernière intervention   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
maxtheirish Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
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
maxtheirish Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
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
Shymon Messages postés 145 Date d'inscription   Statut Membre Dernière intervention   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
maxtheirish Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
Je me suis renseigné sur le sujet du coup j'ai trouvé la solution a ce niveau là, merci encore.
0
djflexlive Messages postés 557 Date d'inscription   Statut Membre Dernière intervention   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
maxtheirish Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
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
djflexlive Messages postés 557 Date d'inscription   Statut Membre Dernière intervention   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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maxtheirish Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
Merci d'avoir pris le temps de chercher, shymon m'a apporté la solution bonne soirée.
0
djflexlive Messages postés 557 Date d'inscription   Statut Membre Dernière intervention   95
 
no pb :)
0