IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] Rechargement de page/Conservation d'information


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 52
    Points : 34
    Points
    34
    Par défaut [PHP-JS] Rechargement de page/Conservation d'information
    Bonjour,

    L'application que je suis entrain de modifier possédait un menu visible dans toute l'application ou tous les items étaient toujours affichés.
    J'ai donc rajouté devant mes éléments de menu des + et - géré en javaScript pour masquer ou afficher certaines parties du menu.

    Jusque la tous vas bien ...

    Le problème arrive lorsque l'utilisateur change de page. Le menu est rechargé et l'utilisateur se retrouve avec tous les éléments du menu affichés.
    Je ne pense pas pouvoir utiliser ni formulaire ni get ni session car l'état du menu est modifier du coté client.

    Est ce que quelqu'un voit une solution?

    Désolé, je n'ai pas vraiment trouvé d'endroit adéquate pour poser cette question.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Malheureusement tu vas etre obligé d'informer le server de l'etat du menu puisque c'est lui qui contruit la nouvelle page à afficher chez le client.
    A mon avis tu devrais utiliser les Sessions et Ajax.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 52
    Points : 34
    Points
    34
    Par défaut
    Merci beaucoup...

    J'avais oublié l'AJAX pour modifier les variables de session. c'est une très bonne piste

    Je vois comment appeler ma requête en ajax. je le fait à chaque fois que je click sur le plus ou le moins. J'apelle une page action.php qui modifie ma variable de session. Mais ce que je ne vois toujours pas c'est comment transmettre à ma page action.php l'état de mon menu.
    Pour l'instant j'utilise c ecode : "xhr.open( "GET", "action.php",true)" Mais ca n'envoie pas d'informations sur le menu.

    Merci d'avance

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Je ne sais pas si ca marcheras mais tu pourrais mettre le menu dans un DIV et poster ce DIV via un appel Ajax.

    Sinon si tu sais comment est programmé ton menu tu pourrais juste poster les informations sur les noeuds ouvert et les noeuds fermés (+/-).
    Un truc du genre le Menu 2 Sous-Menu 3 est ouvert.

    Autre possibilité mettre ton menu dans une IFRAME comme ca il ne se raffraichi jamais mais je ne sais pas si ton site le permet.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 52
    Points : 34
    Points
    34
    Par défaut
    Merci beaucoup à toi une fois de plus

    J'utilise une ligne dans ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open( "GET", path_ajax+"etatmenu.php?idmenu="+iddiv+"&action=masque",true)
    je passe en paramètre de l'URL les parties du menu à cacher ou afficher.

    Ca marche bien. Par contre désolé d'abuser de votre temps. Mais je ne fait pas trop d'ajax et je me demandais si le code suivant était correcte. Il marche mais je ne détruit jamais mes objets XMLHttpRequest.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    function aff(iddiv,path_ajax)
    {
       document.getElementById(iddiv).className='visi';
     
       if (window.XMLHttpRequest)
            xhr = new XMLHttpRequest();
        else {
           if (window.ActiveXObject){
              xhr = new ActiveXObject("Microsoft.XMLHTTP");
           }
        }
        xhr.onreadystatechange  = function()
        { 
             if(xhr.readyState  == 4)
             {
                  if(xhr.status  == 200) 
                     alert("Received:"  + xhr.responseText); 
                  else 
                     alert("Error code " + xhr.status);
             }
        };
        xhr.open( "GET", path_ajax+"etatmenu.php?idmenu="+iddiv+"&action=affiche",true)
        xhr.send(null);                 
    }

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Pour etre honnete je ne m'en suis jamais trop soucié car j'utilise prototype.js pour faire mes appels Ajax, de plus Javascript etant un langage de script je ne sais pas trop commnent il gere ses objets en memoire. Mais je suis sur qu'il doit y avoir plein d'infos la dessus sur le web.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 52
    Points : 34
    Points
    34
    Par défaut
    Ok, merci beaucoup je vais continuer à chercher. Mais aparament tu nest pas le seul à pas t'en soucier...

    Merci pour l'info. prototype.js. Je vais regarder ce que je peut en faire

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    C'est une grosse librarie javascript qui peut faire beaucoup de chose, focalise toi juste sur Ajax.

    Je ne connais pas cette librarie mais on m'a dit beaucoup de bien de JQuery

Discussions similaires

  1. [PHP-JS] recharger la page un certain nombre de fois
    Par Gunner4902 dans le forum Langage
    Réponses: 24
    Dernier message: 03/12/2008, 17h52
  2. [AJAX] Recharger un menu deroulant php sans recharger la page
    Par ns_deux dans le forum Général JavaScript
    Réponses: 25
    Dernier message: 22/07/2006, 15h59
  3. [PHP-JS] Envoi de fichier sans recharger la page
    Par goldorax113 dans le forum Langage
    Réponses: 8
    Dernier message: 30/05/2006, 17h43
  4. [POO] Conserver un objet PHP 5 entre plusieurs pages
    Par Invité dans le forum Langage
    Réponses: 24
    Dernier message: 20/05/2006, 14h13
  5. [PHP-JS] Recharger une partie de la page
    Par diden138 dans le forum Langage
    Réponses: 1
    Dernier message: 11/05/2006, 23h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo