Traitement de données xml (ajax)
Résolu
skflers61
Messages postés
43
Date d'inscription
Statut
Membre
Dernière intervention
-
cyril1982 Messages postés 110 Date d'inscription Statut Membre Dernière intervention -
cyril1982 Messages postés 110 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je me suis lancé dans l'ajax il y a quelques jours et je bloque sur le traitement de données xml crée à partir d'une requète ajax.
Quand je fait ma requète ajax, je crée du code xml qui ressemble à ceci:
et je voudrais que se tableau s'affiche directement dans ma page, c.a.d que le code HTML soit traité.
Pour cela j'ai une fonction readDataResultat:
ps: Comme je ne suis pas un pro de Js, j'ai récupérer le code ici http://www.aliasdmc.fr/coursjavas/cours_javascript167.html et j'ai essayé de l'adapter.
Avec cela, je n'est pas d'erreur mais sa ne m'affiche pas mon tableau (sa m'affiche juste 3 fois undefined).
Alors je ne sais pas si je suis sur la bonne route avec ceci.
Ps: j'ai entendu parlé du XSLT pour afficher les données provenant du XML, je ne sais pas si je dois utiliser ça.
J'ai besoin d'un peu d'aide svp.
Merci pour vos réponse.
Je me suis lancé dans l'ajax il y a quelques jours et je bloque sur le traitement de données xml crée à partir d'une requète ajax.
Quand je fait ma requète ajax, je crée du code xml qui ressemble à ceci:
<?xml version="1.0" encoding="utf-8"?> <TABLE BORDER='1'> <TR> <TH> Nom PROCESS </TH> <TH> Nom GAMME DE MESURE</TH> <TH> Poste </TH> <TH> Code produit </TH> </TR> <TR> <TD id="GEX" name="GEX">0000__119</TD> <TD id="GME" name="GME">VI_967828</TD> <TD id="PO" name="PO">00</TD> <TD id="TYP" name="TYP">PCA00.08_</TD> </TR> <TR> <TD id="GEX" name="GEX">RGR_000</TD> <TD id="GME" name="GME">VI_96782</TD> <TD id="PO" name="PO">05600</TD> <TD id="TYP" name="TYP">8_0101</TD> </TR> </table>
et je voudrais que se tableau s'affiche directement dans ma page, c.a.d que le code HTML soit traité.
Pour cela j'ai une fonction readDataResultat:
function readDataResultat(oData) { var xml = oData; var root_node = xml.getElementsByTagName('TABLE').item(0); for(var h = 0;h< root_node.childNodes.length;h++){ var fils = root_node.childNodes[h]; if(fils.nodeType==1){ alert(fils.firstChild.data) } } var fragment = document.createDocumentFragment(); for(var h = 0;h< root_node.childNodes.length;h++){ var fils = root_node.childNodes[h]; if(fils.nodeType==1){ var el = document.createElement("div") el.appendChild( document.createTextNode(fils.firstChild.data)); fragment.appendChild(el); } } var dmc = document.getElementById("TABLEAUgammeM"); dmc.appendChild(fragment); }
ps: Comme je ne suis pas un pro de Js, j'ai récupérer le code ici http://www.aliasdmc.fr/coursjavas/cours_javascript167.html et j'ai essayé de l'adapter.
Avec cela, je n'est pas d'erreur mais sa ne m'affiche pas mon tableau (sa m'affiche juste 3 fois undefined).
Alors je ne sais pas si je suis sur la bonne route avec ceci.
Ps: j'ai entendu parlé du XSLT pour afficher les données provenant du XML, je ne sais pas si je dois utiliser ça.
J'ai besoin d'un peu d'aide svp.
Merci pour vos réponse.
A voir également:
- Traitement de données xml (ajax)
- Fuite données maif - Guide
- Xml download - Télécharger - Édition & Programmation
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
- Traitement de texte gratuit - Guide
- Supprimer les données de navigation - Guide
3 réponses
Bonjour,
Le plus simple serait que ta requête ajax retourne directement du html, tu n'aurais pas à parser le xml par la suite.
Le plus simple serait que ta requête ajax retourne directement du html, tu n'aurais pas à parser le xml par la suite.
Merci pour ta réponse rapide.
Pour renvoyer du HTML je dois juste enlever la balise <?xml version="1.0" encoding="utf-8"?> et mettre des balise <html> c'est ça?
Une autre question, je dois laisser responseXML dans ma requète? il n'existe pas d'attribut responseHTML je crois?
Enfin, je voudrais pouvoir modifier ce tableau ensuite pour rajouter des lignes ou des colonnes, est-ce possible?
Pour renvoyer du HTML je dois juste enlever la balise <?xml version="1.0" encoding="utf-8"?> et mettre des balise <html> c'est ça?
Une autre question, je dois laisser responseXML dans ma requète? il n'existe pas d'attribut responseHTML je crois?
Enfin, je voudrais pouvoir modifier ce tableau ensuite pour rajouter des lignes ou des colonnes, est-ce possible?
Effectivement il faut enlever la balise xml, par contre il ne faut pas ajouter de balise html.
Il faut utiliser l'attribut responseText. Ensuite tu peux affecter à ta div "dmc" le contenu de cet attribut :
Bon courage
Il faut utiliser l'attribut responseText. Ensuite tu peux affecter à ta div "dmc" le contenu de cet attribut :
var dmc = document.getElementById("TABLEAUgammeM"); dmc.innerHTML = monObjectAjx.responseText
Bon courage