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 :
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 :
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 :
Error: returned status code 0 :
Je pense que mes probl�mes viennent de ces 2 lignes :
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 ?
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.
Partager