bon en utilisant la merveilleuse fonctionalité recherche
Version imprimable
super je crois que j'ai enfin compris quelquechose même que c'était avec du PHP langage que je ne connait pas non plus (j'aime pas microsoft mais au boulot faut travailler avec ca)!
Bref disons que je mets le code suivants comment dois-je dire ou je veux que mon code vienne:
Merci beaucoup!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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 <html> <head> <title>Tutoriel Ajax (XHTML + JavaScript + XML)</title> <script type='text/JavaScript'> var xhr = null; function getXhr(){ if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); 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; } } // Node cleaner function go(c){ if(!c.data.replace(/\s/g,'')) c.parentNode.removeChild(c); } function clean(d){ var bal=d.getElementsByTagName('*'); for(i=0;i<bal.length;i++){ a=bal[i].previousSibling; if(a && a.nodeType==3) go(a); b=bal[i].nextSibling; if(b && b.nodeType==3) go(b); } return d; } /** * Méthode qui sera appelée sur le click du bouton */ function gorefresh(){ getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ reponse = clean(xhr.responseXML.documentElement); alert(reponse.getElementsByTagName("message")[0].firstChild.nodeValue); } } xhr.open("GET","henry.xml",true); xhr.send(null); } </script> </head> <body><table><tr> Comment faire pour introduire ma réponse ici</tr></table> <input type='button' value='refresh' onclick='gorefresh()' /> </body> </html>
Bon ben je ne doit pas avoir compris enfaite! Car s'il y a pas de réponse je pense que je doit être a coté de la plaque! :marteau:
Bon rebelotte je le lit encore une fois peut-être qu'avoir dormis une nuit dessus m'aura aidera a mieux comprendre cette fois-ci!
Si vous avez un autre lien qui parle d'AJAX pour javascript c'est volontiers! (en francais si possible :oops: car plus facile mais si c'est en anglais pas de prob je ferai avec)
Merci
Thierry
moi je suis parti de celui là ...
c'est pas sorcier une fois la connection établie tu récupère soit le responseXML soit le responseText...
essaye un alert(xmlrequest.responseXML)
Cette fois-ci j'ai compris comment ca marche et j'en suis bien content!
Merci pour cette adresse c'est mieux expliqué que sur le tuto de siddh qui s'adresse lui à des personnes connaissant mieux js!
Bref maintenant que j'ai compris les bases vais pouvoir m'y mettre!
C'est vrai que c'est pas très compliqué mais faut comprendre...
Bon je commence :arrow:
oui c'est sans doute vrai ta remarque par rapport au tuto de siddh ...
je l'avais pourtant vu comme une bonne vulgarisation, mais ils semblerait que non ...
Siddh ... faut remanier ton tuto ...
Plus de précisions sans doute sur la partie responseXML ou responseText...
préciser que c'est là dedans que se trouve ce que l'on va rechercher sur le serveur ?
bon courage ;)
Moi je crois que ca viens du faite que c'est fait avec un exemple qui utilise php et si tu connais pas ca te fait vite peur!
Et ce qui m'a bien fait comprendre: c'est qu'il explique ce qu'il fait et entre parenthèse il met les ligne concerné car dans le tuto de siddh c'est expliqué mais on ne sait pas vraiment quoi fait vraiment quoi!
Et aussi un autre truc que je me suis demandé c'est pourquoi il n'a pas mis dans ca page ces exemples à tester?
C'est pas des reproches juste des améliorations qui pourrait aider à une meilleure compréhension
J'aurais besoin d'un peux d'aide pour faire mon tableau
le script suivant dans mon html:
La structure html:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 function addtable() { var xhr_object = null; xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); xhr_object.open("GET", "import.xml", true); xhr_object.onreadystatechange = function() { if(xhr_object.readyState == 4) { document.getElementById("toto").innerHTML = xhr_object.responseXML ; } } xhr_object.send(null); }
Suivi du XML:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <html> <body> <table id="partList" cellspacing="0" width="100%"> <thead> <tr> <th>Item</th> <th>Description</th> </tr> </thead> <tbody xmlns="http://www.w3.org/1999/xhtml" id="toto"> </tbody> </table> <p style="text-align: center"> <button id="btnAddPart" onClick="AddPartToInvoice(gobjCurrentPartSelected)" disabled="">Add To Invoice</button> <button id="btnAddPart" onClick="addtable()">load</button> </p> </body> </html>
J'aimerais que tout l'élément <tbody> soit populer par les <tr/> de mon xml. est-il possible de naviguer dans le XML que tu charge?Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?xml version="1.0" encoding="ISO-8859-1"?> <tbody> <tr id="part1" PartNumber="14" PartDescription="Tofu" UnitCost="23.25" onClick="SelectPart(this)" onDblClick="AddPartToInvoice(this)"> <td unselectable="on">14</td> <td unselectable="on">Tofu</td> </tr> <tr id="part2" PartNumber="28" PartDescription="Rossle Sauerkraut" UnitCost="45.60" onClick="SelectPart(this)" onDblClick="AddPartToInvoice(this)"> <td unselectable="on">28</td> <td unselectable="on">Rossle Sauerkraut</td> </tr> <tr id="part3" PartNumber="51" PartDescription="Manjimup Dried Apples" UnitCost="53.00" onClick="SelectPart(this)" onDblClick="AddPartToInvoice(this)"> <td unselectable="on">51</td> <td unselectable="on">Manjimup Dried Apples</td> </tr> </tbody>
Mais comment faire? J'ai regarder sur la MSDN et je ne trouve rien dans les propriétés et méthode de responseXML!
Si jamais ce html machera toujours avec IE et pas FF!
Merci
Thierry
beinsur que tu peux naviger dans le responseXML avec getElementsBytagName par exemple ...
y'a plein de posts sur le sujet ...[/code]
mwarf, t as du louper les liens de telechargements en haut du tuto 8O
et il me semble qu'il y a des commentaires dans le code ....
Mais je vais essayer de faire plus détaillé alors.
Enfin faut quand même pas oublier que l'utilisation d'xhr c'est pas comme de faire un alert ....
Pour ce qui est de ton innerHTML, tu peux le faire mais en utilisant le responseText, pas le responseXML qui te retourne un objet xml.
:oops: :oops: :oops: :oops: :oops: :oops:
ha ben tu vois siddh j'ai encore beaucoup à apprendre sur ajax ...
je pensais que l'on ouvait naviguer dans un xml avec des getElementsByTagName ...
mais tu peux, enfin sur son documentElement ;)
la je disais juste qu'on peut pas faire un innerHTML en utilisant le responseXML, ca affichera [object] dans le meilleur des cas.
Effectivement! 8) mais d'un autre coté faut voir le lien :wink:Citation:
mwarf, t as du louper les liens de telechargements en haut du tuto
Ok mais qu'es ce qui me permet de dire a l'intérieur de tbody? appendChild comme j'ai compris?Citation:
Pour ce qui est de ton innerHTML, tu peux le faire mais en utilisant le responseText, pas le responseXML qui te retourne un objet xml.
Et aussi comment compter le nombre d'occurence de tr???
Donc en faisant une boucle du genre (sans les faute) je devrais y arriver:
:oops: j'ai pas vu que vous aviez posté entretempsCode:
1
2
3
4
5
6 var l= xhr_object.responseXML.getElementsByTagName('tr').length for(var j=0;j < l;j++) { document.getElementById("toto").appendChild = xhr_object.getElementsByTagName('tr').item(j); }
plus un truc comme ça :
Code:
1
2
3
4
5
6
7
8 var trs = xhr_object.responseXML.documentElement.getElementsByTagName('tr'); var l= trs.length for(var j=0;j < l;j++) { document.getElementById("toto").appendChild(trs[j]); }
ok je vois je comprend un peu la logique, c'est dans le genre de C#!
mais y a un truc qui fait une erreur:
ca me renvoit l'erreur:Code:var trs = xhr_object.responseXML.documentElement.getElementsByTagName('tr');
Saurais-tu pourquoi?Citation:
"xhr_object.responseXML.documentElement" a la valeur Null ou n'est pas un objet
fais toi un alert du responseText pour vérifier déjà si tu récupère le xml que tu veux.
Quand on a cette erreur, c est souvent une erreur au niveau de la conception xml
C'est bien ce que j'ai fait:Citation:
Envoyé par siddh
ca me renvoit mon xml dans un fenêtre d'alerte et après si je fais ok il plante a la ligne que je t'ai mentionné!Code:alert(xhr_object.responsetext);
Mon xml est valide avec XMLSpy et il a rien d'extraordinaire! Je l'ai posté plus haut si tu veux le voir!
Merci
oui je l'ai regardé et rien trouvé de bizarre dedans.
Fais toi un alert du responseXML, il devrais afficher [object], ensuite un alert de responseXML.documentElement qui devrais te retourner #document ou object aussi et dis moi
renvoit: le xmlCode:alert(xhr_object.responsetext);
renvoit: [objet]Code:alert(xhr_object.responseXML);
renvoit: nullCode:alert(xhr_object.responseXML.documentElement);
Ca doit être ca le problème je l'ai écrit juste? Au faite Jscript c'est case sensitive? a voir oui...
comprend pas trop!
oui c est case sensitive et tu l as bien ecrit
et tu peux aussi faire un alert de xhr_object.responseXML.childNodes.lengthCode:
1
2
3
4
5 var message = ""; for(i in xhr_object.responseXML) message += i+" "+xhr_object.responseXML[i]; alert(message);