Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/01/2011, 12h04   #1
Invité régulier
 
Homme
Inscription : octobre 2010
Messages : 32
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : octobre 2010
Messages : 32
Points : 7
Points : 7
Par défaut 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 :
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
Gonzo_09 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 13h15   #2
Invité régulier
 
dev java
Inscription : janvier 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : dev java

Informations forums :
Inscription : janvier 2011
Messages : 6
Points : 6
Points : 6
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 :
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
dev-j2ee-php5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 13h50   #3
Invité régulier
 
Homme
Inscription : octobre 2010
Messages : 32
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : octobre 2010
Messages : 32
Points : 7
Points : 7
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 :
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 :
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 )
Gonzo_09 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 17h51   #4
Invité régulier
 
Homme
Inscription : octobre 2010
Messages : 32
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : octobre 2010
Messages : 32
Points : 7
Points : 7
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 :
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 :
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.
Gonzo_09 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 10h20   #5
Invité régulier
 
dev java
Inscription : janvier 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : dev java

Informations forums :
Inscription : janvier 2011
Messages : 6
Points : 6
Points : 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
dev-j2ee-php5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h42.


 
 
 
 
Partenaires

Hébergement Web