IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] R�ponse XML - Functions Javascript


Sujet :

JavaScript

  1. #1
    Membre �prouv� Avatar de ..:: Atchoum ::..
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    159
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Par d�faut [AJAX] R�ponse XML - Functions Javascript
    Bonjour tout le monde,

    Suite � ce post :
    http://www.developpez.net/forums/vie...439640#2500971
    J'ai voulu essayer mais ca ne marche pas sous IE...
    Voici ce que je fais :

    J'ai un bouton, quand je clique sur celui ci je fais une requete AJAX dans le but de remplir un div avec du HTML mais surtout dans le but de r�cup�rer et donc de cr�er � la vol� une fonction javascript que le serveur m'envoie.

    Function qui g�re l'action du bouton:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    if (document.getElementById('test_button'))
            {
                    document.getElementById('test_button').onclick=function()
                    {
                            sendDataXML('POST','test_xml.php','valeur='+escape(document.getElementById('test_text').value),document.getElementById('test_result'));
                            document.getElementById('test_result').innerHTML='Veuillez patienter...Requête en cours';
                    }
            }
    Function sendDataXML (les lignes importantes):
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function sendDataXML(method, url, data, noeudDest)
    {
    .....
                    xmlRequest.overrideMimeType('text/xml');
    ......
                     if (xmlRequest.status == 200)
                     {
                          noeudDest.innerHTML="";                                          addChild(noeudDest,xmlRequest.responseXML.documentElement);                                        
    }
                            }
    .....
    }
    Et enfin le fichier test_xml.php :
    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
    <?
    include_once($_SERVER['DOCUMENT_ROOT']."global/lib.inc.php");
    header('Content-type: text/xml; charset=iso-8859-15');
    ?>
    <html>
     <body>
      <script type="text/javascript">
    function toto(){
      alert('bonjour <?=$_POST['valeur']?>');
    }
    toto();
      </script>
      Text en <b>HTML</b>
     </body>
    </html>
    Sachant que la function sendDataXML utilise ceci:
    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
    function clone(elem){
          if(elem.nodeName == "#text")
             return elem;
     
          c = document.createElement(elem.nodeName);
          if(elem.hasAttributes()){
             for(var i=0;i<elem.attributes.length;i++){
                var curr = elem.attributes[i];
                c.setAttribute(curr.name,curr.value);
     
             }
          }
          return c;
       }
     
    function addChild(par,enf){
          if(enf.childNodes.length > 0){
             var tmpe = new Array();
             while(enf.childNodes.length > 0){
                var elem = enf.removeChild(enf.firstChild);
                tmpe.push(elem);
             }
             if(enf.parentNode){
                var epar = enf.parentNode;
                var el = epar.removeChild(enf);
                par.appendChild(clone(el));
             }
             else
                par.appendChild(clone(enf));
             var cmpt=0;
             while(tmpe.length>0){
                this.addChild(par.lastChild,tmpe.shift());
                cmpt++;
             }
          }
          else{
             par.appendChild(clone(enf));
          }
       }
    Dans le post auquel je fais r�f�rence, Grepack a eu aussi une erreur sous IE, je ne sais pas si tu as r�ussi � la corrig� ...

    Voila pour moi l'erreur se situe dans la fonoction addchild() mais je ne suis pas sur..

    Merci d'avance


  2. #2
    Expert confirm�
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par d�faut
    remplaces le
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if(elem.hasAttributes()){
    par
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if(elem.attributes.length > 0){

  3. #3
    Membre �prouv� Avatar de ..:: Atchoum ::..
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    159
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Par d�faut
    Donc donc,

    J'avance doucement...
    D�j�, .overrideMimeType n'existe pas sous IE, ca m'a corrig� un bug

    Ensuite Siddh ton remplacement fais plant� IE d'une mani�re que je n'avait encore jamais vu !!!

    Ca plante le truk violament, avec le message d'erreur windows (Avec envoyer, Ne pas envoyer etc..)

    Mais bon je suis sur qu'on est pas loin 8)

  4. #4
    Expert confirm�
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par d�faut


  5. #5
    Expert confirm�
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par d�faut
    bon deja, vires html et body de ce que tu retournes meme si je pense pas que �a ait d'incidence (mais ca me laisse le temps de r�fl�chir)

  6. #6
    Membre �prouv� Avatar de ..:: Atchoum ::..
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    159
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Par d�faut
    Ou� ou� !!

    Erreur que je viens de corriger

    elle venait de la ligne :
    header('Content-type: text/xml; charset=iso-8859-15');
    dans le fichier test_xml.php

    Voila, il me reste toujours une erreur "Objet requis" seulement sous IE


  7. #7
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par d�faut
    if(elem.attributes){

  8. #8
    Expert confirm�
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par d�faut
    a quelle ligne il te dit que ca correspond

  9. #9
    Membre �prouv� Avatar de ..:: Atchoum ::..
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    159
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Par d�faut
    Ok donc Matthieu2000 j'ai essay� cette ligne mais ca ne marche pas non plus...

    Et Siddh, j'ai enlev� les balises html et body, je les ai remplacer par une seule balise <div> et </div> mais rien non plus j'ai toujours la meme erreur...

    Je vais essay� de d�bugguer a coup d'alert ligne par ligne, je vous tiens au courant

    Merci encore, et bon si vous avez encore des id�es je prends


  10. #10
    Membre �prouv� Avatar de ..:: Atchoum ::..
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    159
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Par d�faut
    L'erreur vient de la premi�re ligne de la fonction addchild() apparement

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function addChild(par,enf){
     
        alert("plop");
        if(enf.childNodes.length > 0){
        alert("plup");
            var tmpe = new Array();
             while(enf.childNodes.length > 0){
                var elem = enf.removeChild(enf.firstChild);
                tmpe.push(elem);
             }
    Le plup n'apparait pas...

  11. #11
    Expert confirm�
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    noeudDest.innerHTML="";                                          
    alert(xmlRequest.responseText);
    addChild(noeudDest,xmlRequest.responseXML.documentElement);
    ca se trouve c est ta reponse qu'a un probleme

  12. #12
    Membre �prouv� Avatar de ..:: Atchoum ::..
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    159
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div>
      <script type="text/javascript">
    function toto(){
      alert('bonjour test');
    }
    toto();
      </script>
      Text en <b>HTML</b>
      </div>
    Voila le contenu du alert

  13. #13
    Expert confirm�
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    addChild(noeudDest,xmlRequest.responseXML.documentElement.firstChild);
    ?

  14. #14
    Membre �prouv� Avatar de ..:: Atchoum ::..
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    159
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Par d�faut
    Apr�s encore plusieurs jeu de test, je m'apercois qu'a l'entr�e de la fonction addchild(par,enf)

    enf est null se serait donc a l'appelle que ca foire..

    En gros est ce que IE connais :xmlRequest.responseXML.documentElement

    EDIT: Avec firstChild rien de nouveau, une r�gression sous Firefox

  15. #15
    Expert confirm�
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    alert(xmlRequest.responseXML.documentElement.nodeName);

  16. #16
    Membre �prouv� Avatar de ..:: Atchoum ::..
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    159
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Par d�faut
    Ou�p bah comme je disais au dessus,
    xmlRequest.responseXML.documentElement est null

    Donc sous IE ca plante et sous FF ca m'a affich� div

    C'est quand meme bizarre que ca soit vide..... alors que xmlRequest.responseXML ne l'est pas ...

  17. #17
    Expert confirm�
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par d�faut
    et si tu rajoutes en haut de ton document ?

  18. #18
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par d�faut
    Utilises tu le mode Synchrone ou Asynchrone ?

  19. #19
    Expert confirm�
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par d�faut
    c est juste que ie n'interprete pas le retour comme du xml, il l'a dans responseText mais pas dans le xml
    Firefox, avec le override met en xml automatiquement

  20. #20
    Membre �prouv� Avatar de ..:: Atchoum ::..
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    159
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Par d�faut
    Siddh : J'y ai cru.. mais nan rien n'y change

    Matthieu2000 :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    xmlRequest.open(method, url, true);
    J'utilise donc la m�thode Asynchrone


    Edit : Siddh comment je dis a IE de le consid�r� comme une XML ?

    Autre question ? Ca n'est arriv� qu'a moi ???

+ R�pondre � la discussion
Cette discussion est r�solue.
Page 1 sur 2 12 Derni�reDerni�re

Discussions similaires

  1. [AJAX] ajax et function javascript
    Par bailamos dans le forum AJAX
    R�ponses: 10
    Dernier message: 17/02/2010, 13h16
  2. [AJAX] Ajax optimisation et function javascript !
    Par MaxLaMenaX dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 19/02/2009, 12h15
  3. [AJAX] R�ponse XML
    Par sylsau dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 17/12/2006, 23h50
  4. [AJAX] JavaScript, Ajax et XML
    Par tclariss dans le forum G�n�ral JavaScript
    R�ponses: 6
    Dernier message: 09/10/2006, 22h53
  5. xml et javascript
    Par mati dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 09/08/2005, 15h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo