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

AJAX Discussion :

[AJAX] Récupérer bloc div dans xml


Sujet :

AJAX

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 39
    Par défaut [AJAX] Récupérer bloc div dans xml
    Bonjour à tous,

    Tout d'abord laissez moi vous préciser que je suis débutant en AJAX.
    Voilà mon problème :
    J'ai une JSP générée par une servlet qui ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <%@ page language="java" contentType="text/xml; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
     
    <body>
    	<div id="inscription">
    		<jsp:include page="modInscription.jsp"></jsp:include>
    	</div>
    	<div id="stats">
    		<jsp:include page="modStats.jsp"></jsp:include>
    	</div>
    </body>
    </html>
    Vous remarquerez que le contentType est "text/xml"

    Dans une autre JSP, celle qui s'affiche à l'écran de l'utilisateur, je récupère en AJAX la JSP précédente qui est en fait du XML (si toute fois je ne me trompe pas).

    Maintenant je voudrais qu'un des blocs div de ma JSP "d'affichage" prennent le contenu d'un bloc div (par exemple la div "inscription") de la JSP que je vous ai montrée. Mais je ne sais pas comment faire. J'ai lu et essayé beaucoup de chose sans succès. J'avoue ne plus trop comprendre ce que je fais . J'ai essayé avec des getElementByTagName, getElementById, childNode...

    Je précise que je reçois bien mon fichier XML (ma JSP en fait) par AJAX car quand je fais alert(xhr.responseXML); j'ai une pop up qui s'affiche contenant [object XMLDocument]. Pour la récupération j'ai utilisé xhr.responseXML.

    Si quelqu'un peut m'expliquer ce que je dois faire pour récupérer ces fameux div dans mon xml ou me dire si j'ai fait une grosse boulette, je l'en remercie d'avance

  2. #2
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 6
    Par défaut
    ok meme tt ce ke tu dit t as pas bien precis ce ke tu veux mais je vous consiillé d utlisé code suivant;
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    function fctname (div_show){
     
    	var XHR= null;  // AJAX  XHR=Xml Http Request
    	if (window.XMLHttpRequest)                 //  Objet de la fenêtre courant
    	{ 
        XHR = new XMLHttpRequest();     //  Firefox, Safari, ...
    	} 
    	else if(window.ActiveXObject){ // Internet Explorer
    	try {
    	XHR = new ActiveXObject("Msxml2.XMLHTTP");
    	} catch (e) {
    	XHR = new ActiveXObject("Microsoft.XMLHTTP");
    	}
    	}
    	else { // XMLHttpRequest non support‚ par le navigateur
    	alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    	XHR = false;
    	}
     
     
    		XHR.open("GET","namepage.jsp",true);
    		XHR.onreadystatechange = function()
    								{
    								if(XHR.readyState <=3){
    					//pour afficher le contenu de la page
    				//ici si tuveux apres ke la reponse s affiche indique //au utlisateur ke il faut attendre un peu	
     
    	document.getElementById(''+div_show+'').innerHTML="<center><img src='../../images/loading_balls.gif'  /><span class='titre_bleu'>&nbsp;&nbsp;Loading ...</span></center>";//"Loading ...";
     
    								}
     
    								if(XHR.readyState == 4)
    								{
     
    	//pour afficher le contenu de la page					document.getElementById(''+id_show+'').innerHTML=XHR.responseText;										
     
    								}
    								}
     
    		XHR.send(null);
    }

    j espere que ca marche

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 39
    Par défaut
    Ok je vais essayé de mieux expliquer.

    Si je reprends ton exemple, c'est cette instruction qui me pose problème :
    document.getElementById(''+id_show+'').innerHTML=XHR.responseText;

    Moi si je fais ça, ma div affiche : [object XMLDocument].
    Je voudrais qu'elle affiche une partie du contenu de ce fameux XMLDocument (la div "inscription").

    J'ai essayé en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('session').innerHTML = sData.getElementsByTagName("div").namedItem("inscription").nodeValue;
    mais ça ne m'affiche rien.
    Alors j'ai voulu tester et j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(sData.getElementsByTagName("div").namedItem("inscription").nodeValue);
    et j'ai droit à un "null"

    Donc question : comment générer du HTML à partir d'une div d'une JSP-XML récupérée par AJAX (phrase incompréhensible mais pourtant révélateur de mon problème )

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 39
    Par défaut
    A priori si dans ma JSP infosUser.jsp (autrement dit celle que je vous ai montrée au début) j'enlève les includes et que je met seulement du texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <%@ page language="java" contentType="text/xml; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
     
    <body>
    	<div id="inscription">
    		Test affichage div insc
    	</div>
    	<div id="stats">
    		Test affichage div stats
    	</div>
    </body>
    </html>
    ça fonctionne. Mais dès que je rajoute une autre balise HTML :
    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
    <%@ page language="java" contentType="text/xml; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    
    <body>
    	<div id="inscription">
    		Test affichage div insc
    		<span style="font-weight:bold;">Ceci est votre première connexion.</span><br />
    	</div>
    	<div id="stats">
    		Test affichage div stats
    	</div>
    </body>
    </html>
    ça ne m'affiche toujours que le texte ("Test affichage div insc").

    J'en conclue donc que c'est parce que le contentType de ma JSP est "text/xml". Mais alors comment faire pour que mon AJAX me renvoit une réponse XML contenant des balises non XML (à savoir HTML), si toutefois cela est possible? J'ai essayé avec une section CDATA mais sans succès.

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 6
    Par défaut salut
    Pas de grand compréhension mais pourquoi tu utilise xml dans tes page et tu ne pas besion je te consiel de créer une nouvelle page normal sans xml et autre pas de traitement laquel tu veux enregistre au "div" et retest ??, et pour moi si il y a pas de data a ramener a la page prkoi ajax seulement du javascript utilise display none et blok

Discussions similaires

  1. Réponses: 8
    Dernier message: 11/06/2010, 15h11
  2. Réponses: 1
    Dernier message: 08/12/2009, 19h52
  3. Réponses: 6
    Dernier message: 15/04/2009, 14h20
  4. [AJAX] Récupérer une url dans un multiframe.
    Par idamarco dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 17/01/2009, 00h34
  5. Réponses: 6
    Dernier message: 31/03/2007, 01h39

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