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

JavaScript Discussion :

[AJAX] rafraichissement d'un Div en Ajax


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 28
    Par défaut [AJAX] rafraichissement d'un Div en Ajax
    Bonjour,

    Je suis sur un projet J2EE utilisant struts,hibernate et tiles.
    J'ai un menu fait avec l'aide de Tiles affichant pour chaque page un header, un menu a gauche, un body et un footer.
    Le menu marche parfaitement, le probleme vient lorsque je veux ajouter de l'ajax a tout ca. En effet, actuellement, lorsque je click sur un element du menu, toute la page se rafraichi or j'aimerai rafraichir que le body.
    Mon menu fait appel a des actions qui sont affiché dans le body.
    Je débute dans tout ca et surtout sur Ajax. J'aimerai pouvoir effectuer mon action comme fait actuellement mais ne pas réafficher toute ma page et simplement afficher le résultat de mon action dans le body.
    Actuellement, un lien du menu appel une action qui forward sur un tileDefinition qui modifie la valeur du body. Ensuite la page est actualisé.

    Pour ce qui est d'ajax, je ne sais pas vraiment quoi utilisé, j'ai trouvé quelques framework mais j'ai du mal à les integrets a structs, aux actions et tiles. Je me suis dirigé vers XMLHttpRequest mais c'est pas encore ca.

    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    normalement, tu as tout ce qu'il faut dans les tutos du site (les deux premiers de la section JS ^^)
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 28
    Par défaut
    J'ai encore un souci

    J'arrive en utilisant XmlHttpRequest à activer le lien de mon menu puisqu'il passe bien dans mon action et l'execute. Mon probleme arrive pour l'affichage.
    En effet, le body de ma page se definie comme tel :

    <div class="Dbody" id="Dbody">
    <tiles:insert attribute="body" />
    </div>
    Mon probleme est donc de mettre a jour mon div avec le nouveau body.

    Mon lien : <a href ='#' onclick='update("listeMembres.do")' >

    Struts-config.xml
    <action path="/listeMembres" type="action.ListeMembresAction" scope="request" validate="false" name="RechercheMembreForm">
    <forward name="Success" path="listeMembresDef" redirect="true" />
    </action>

    TileDefinitions.xml
    <definition name="listeMembresDef" extends="intranetLayout">
    <put name="body" value="/intranet/listeMembres.jsp" />
    </definition>

  4. #4
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("Dbody").innerHTML = xmlhttprequest.responseText
    Si tu veux convertir du XML en HTML, utilise une page JSP... sans "<html><head></head><body>" et transforme le XML en code HTML.

    C'est plus facile que de le faire chez le client.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 28
    Par défaut
    ok merci ca s'affiche, j'ai des petits soucis d'affichage encore a cause de mes tiles et de mon layout mais je vais bien trouvé.

  6. #6
    Membre expérimenté
    Inscrit en
    Mai 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 217
    Par défaut
    moi perso j'utilise une feuille XSL pour mettre en page le XML

    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
    25
     
     
                     // Chargement du XSL, XML et de l'element HTML cible
                    var xsl = loadXML(urlXslFile);     
                    var xml = http_request.responseXML;
                    var target = document.getElementById("<truc>");
     
                    try {
                          // navigateur base sur Gecko
                         if (window.XSLTProcessor){
                               var fragment;
                                var xsltProcessor = new XSLTProcessor();
                                xsltProcessor.importStylesheet(xsl);
                            fragment = xsltProcessor.transformToFragment(xml, document);
     
                            target.appendChild(fragment);
                            document.appendChild(target);
                          } 
     
                          // ActiveX pour Internet Explorer
                          else if (window.ActiveXObject) {
                               target.innerHTML = xml.transformNode(xsl);
                          }
                    }
                    catch (e) {return e;}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] - Rafraichissement d'un DIV avec setTimeOut
    Par Seb06 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/03/2011, 00h07
  2. [AJAX] Rafraichissement de plusieurs DIV en AJAX
    Par Miou76 dans le forum AJAX
    Réponses: 5
    Dernier message: 20/09/2009, 19h07
  3. [AJAX] Rafraichissement des données sur la page
    Par TreizeSegments dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/05/2006, 18h32
  4. ajax,rafraichissement avec une liste deroulante
    Par klimero dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/04/2006, 09h41
  5. [AJAX] texte réponse Ajax dans un conteneur div
    Par grinder59 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/02/2006, 18h07

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