Bonjour,

je viens � vous apr�s de longues heures de lutte acharn�e face � JS que je d�couvre � peine (ci-apr�s nomm� Miguel), XML/XSL (de m�me, et ci-apr�s nomm� Pedro) et la "new technology" Ajax (tout pareil que Miguel et Pedro).

Je vous explique mon probl�me : j'ai mon fichier afficherTableau.xsl dans lequel j'ai un tableau que je g�n�re via un XML (donc, en XSL). Jusque l� �a va. En cliquant sur une des lignes du tableau, je veux acc�der � un attribut de l'�l�ment cliqu�. J'affiche cela dans ma lightbox, une div cach�e dans ma page (qui marche, elle).

Bon, mon premier probl�me, c'est comment sauvegarder l'id de ma ligne (cet id est en fait la position [fonction position() de XSL] du noeud affich� dans ma ligne) sur laquel je clique afin de la donner � ma fonction qui affichera les d�tails de cette ligne ? Apr�s quelques manipulations, je n'arrive � rien de probant.

Mais surtout, je tente sans r�sultat de r�cup�rer ces informations � afficher (des attributs de mes �l�ments dans le tableau) en utilisant Ajax (enfin, on va plut�t dire que j'utilise XMLHttpRequest). Je viens d'�tre jet� dans le monde de la programation ou�b et beaucouop de chose m'�chappent.

[edit]
Pour donner un petit exemple pour �tre plus clair, disons que ceci est mon fichier XML :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
 
<A>
    <a1>
        <a11 attribut1="a" attribut2="b" />
    </a1>
    <a2>
        <a21 attribut1="a123" attribut2="b123" />
        <a22 attribut1="a213" attribut2="b213" />
        <a23 attribut1="a321" attribut2="b321" />
    </a2>
    [...]
J'affiche dans mon tableau tous les attributs "attribut1" des �l�ments "a2x" et je veux, en cliquant sur une des lignes de mon tableau, acc�der � l'attribut "attribut2" de l'�l�ment cliqu� afin de l'afficher.

Pour cela, je veux sauvegarder l'id de ma ligne (cad la position du noeud), appeler le fichier XML, lire le noeud n�id et afficher l'attribut qui m'int�resse.
[/edit]

Voici mon code :
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
43
44
45
46
47
48
49
 
function getMessage(id)
{
	var req = null;
 
	if (window.XMLHttpRequest)
	{
		req = new XMLHttpRequest();
		if (req.overrideMimeType)
		{
			req.overrideMimeType('text/xml');
		}
	}
	else if (window.ActiveXObject)
	{
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e)
		{
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
 
	req.onreadystatechange = function()
	{
		if(req.readyState == 4)
		{
			if(req.status == 200)
			{
				// process a XML document here
				var doc = req.responseXML;
				var element = doc.getElementsByTagName("chemin-en-xpath?").item(0);
				document.getElementById("meuh").innerHTML = element.firstChild.data;
				//document.getElementById("meuh").innerHTML = element;
 
			}
			else
			{
				document.getElementById("meuh").innerHTML = "Error: returned status code " + req.status + " : " + req.statusText;
			}
		} else {
			document.getElementById("meuh").innerHTML = "Error perso" ;
		}
	};
	req.open("GET", "test.xml", true);
	req.send(null);
}
J'ai r�cup�r� la base de ce code sur un tuto tr�s bien fait Malheureusement, chez moi, le seul affichage que j'obtiens est :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
Error: returned status code 0 :
Je pense que mes probl�mes viennent de ces 2 lignes :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
var element = doc.getElementsByTagName("chemin-en-xpath?").item(0);
Auquel cas, je n'ai pas compris le principe du parcours du fichier gr�ce � getElementByTagName. Peut-�tre est-ce impossible de lire un XML avec �a ?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
req.open("GET", "test.xml", true);
L�, je me dis qu'au lieu de mettre l'url (relative) de mon fichier, c'est plut�t celle du serveur qu'il faut mettre ? Si oui, quoi utiliser ? et comment tester en local ?

Je vous avous que je n'arrive plus � comprendre quoi que ce soit :-/
Je vous demande donc votre aide.

Merci d'avance.