pk ne pas génerer ton HTML en PHP ?
parce qu'en fait mon tableau sert à afficher les résultats de requête sur une base. C'est pour ça que j'utilise XmlHTTPRequest. Comme l'utilisation de l'outil necessite que des requêtes sur la base soient effectuées souvent, ça permet de ne pas toujours avoir à recharger entièrement la page (ça peut être très pénible au bout d'un moment).
Je sais bien qu'en théorie XmlHTTPRequest est fait pour renvoyer de l'XML mais je me sens plus à l'aise en renvoyant du code JS évalué.
il est plus efficace de passer par responseXML. en effet la réponse est alors un arbre DOM il suffit alors de récupérer le noeud approprié et de faire un append. l'arbre DOM de la page se trouve alors à jour.Envoyé par FremyCompany
Alors qu'avec InnerHTML ce n'est pas très sur
A+JYT
Mouais... et dès que tu fais [[<table border=1 >]] ton responseXML, il vaut undefined...
En plus certains navigateurs ne supporte pas l'ajout par DOM d'un noeud d'un document (responseXML) vers un autre (document), même après utilisation de cloneNode...
Alors je ne vois pas ce qu'il y a de plus sur à passer par XML...
![]()
rebonjour à tous,
comme prévu j'ai fait un essai de création de tableau avec un code un peu plus simple que ce que j'avais avant, histoire de pouvoir mieux identifier le problème.
J'ai encore le même soucis avec IE.
Voici, mon code:
En fait sous Firefox comme d'habitude tout est nickel alors que sous IE seul le caption apparait.
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
50 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Intracsa - Gestion des Plans de Sauvegarde</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" /> </head> <body> <div id="sauv"> </div> <script type="text/javascript"> tab=document.createElement("table"); tab.setAttribute("summary","Tableau des sauvegardes"); cap=document.createElement("caption"); text=document.createTextNode("Sauvegardes"); cap.appendChild(text); tab.appendChild(cap); row=document.createElement("tr"); head=document.createElement("th"); text=document.createTextNode("Date Insertion"); head.appendChild(text); row.appendChild(head); head=document.createElement("th"); text=document.createTextNode("Nom"); head.appendChild(text); row.appendChild(head); head=document.createElement("th"); text=document.createTextNode("Date"); head.appendChild(text); row.appendChild(head); head=document.createElement("th"); text=document.createTextNode("Fréquence"); head.appendChild(text); row.appendChild(head); tab.appendChild(row); container=document.getElementById("sauv"); container.appendChild(tab); </script> </body> </html>
J'imagine que le problème vient encore de l'interprétation que fait IE des fonctions JS. Dans ce cas comment manipuler le DOM sous IE ?
rectification,
en fait ça marche, il fallait juste ajouter une balise tbody, j'ai trouvé ça en fouillant un peu dans le forum. Apparemment IE à besoin qu'on ajoute un tbody quand on crée un tableau avec les fonctions du DOM.
C'est quand même bizarre parce que quand on utilise un innerHTML ou quand on définit directement le tableau en HTML, la balise tbody n'est pas necessaire.
M'enfin...
Faut dire que manipuler le DOM, et utiliser le "rendering" par défaut du navigateur ( qui est sollicité quand tu mets directement un <table>, il génère le DOM "à sa sauce" derrière ) sont deux choses différentesEnvoyé par bud_gw
IE est bizarre quand même....
A+ =)
après moult test, il semblerait que IE ne permette pas de faire un eval() d'une fonction telle que createElement() dans un objet XmlHttpRequest.
Ca m'embete beaucoup et c'est plutôt rageant parce que mon appli fonctionne comme je veux sous firefox.
Je pense que je vais être obligé d'utiliser le responseXML.
je ressors un vieux sujet :
j'ai eu moi aussi un pb avec un getElementById qui me renvoyait une erreur "cet objet ne gère pas cette propriété et/ou cette méthode", pour un select qui était écrit "en dur" sur mon code html.
j'ai changé
en
Code : Sélectionner tout - Visualiser dans une fenêtre à part ch3 = document.getElementById('champ3');
et IE6 ne me sort plus d'erreur...
Code : Sélectionner tout - Visualiser dans une fenêtre à part var ch3 = document.getElementById('champ3');
Tous mes autres getElementById sont pourtant codés sans la mention 'var' et marchent quand même.. incompréhensible mais si ça peut en aider certains..
Partager