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. #21
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ben ecoute moi dans mon appli ca marche mais j'interroge pas un fichier html mais du php avec un header xml

  2. #22
    Membre habitué Avatar de ..:: Atchoum ::..
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Points : 156
    Points
    156
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?
    include_once($_SERVER['DOCUMENT_ROOT']."global/lib.inc.php");
    header("Content-Type: text/xml");
    echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?>"; ?>
    <div>
      <script type="text/javascript">
    function toto(){
      alert('bonjour ');
    }
    toto();
      </script>
      Text en <b>HTML</b>
    </div>
    Arf, je ne comprend plus rien ! J'ai mis ca dans le fichier de retour, et ca fonctionne... seulement j'ai encore une erreur :
    "Cette interface n'est pas prise en charge"(seulement sous IE toujours)

    le résultat de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(xmlRequest.responseXML.nodeName);
    Donne :
    #document
    ...

  3. #23
    Membre habitué Avatar de ..:: Atchoum ::..
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Points : 156
    Points
    156
    Par défaut
    Bon, je crois que je vais me résigner... ca ne fonctionne pas sous IE...

    Apparement il n'aime pas les setAttribute de type : "Type" ...

    J'ai mis en commentaire pour voir ce que ca donné mais j'ai une autre erreur du même type (j'ai pas encore chercher ca provenance mais c'est lors de l'appelle récursif à la fonction addchild() )
    Cette interface n'est pas prise en charge

    Si je trouve une solution je vous dirai...

    Merci encore

  4. #24
    Membre habitué Avatar de ..:: Atchoum ::..
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Points : 156
    Points
    156
    Par défaut
    Arf ca y est je suis arrivé a ce que je voulais
    Je me suis créer une classe qui utilise DOM en php.
    Pour le coup c'est moins puissant que ce que je voulais mais ca va...

    Voila pour ceux que ca intéresse :
    <?
    class&#160;ajaxFluxXML&#160;{
    &#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;protected&#160;
    $dom;
    &#160;&#160;&#160;&#160;protected&#160;
    $main;
    &#160;&#160;&#160;&#160;protected&#160;
    $elements;
    &#160;&#160;&#160;&#160;protected&#160;
    $javascripts;
    &#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;public&#160;function&#160;
    __construct($version="1.0",$char="iso-8859-15")
    &#160;&#160;&#160;&#160;{
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->dom=new&#160;DOMDocument($version,$char);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $main&#160;=&#160;$this->dom->createElement('main');
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->main&#160;=&#160;$this->dom->appendChild($main);
    &#160;&#160;&#160;&#160;}

    &#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;public&#160;function&#160;
    addElement($HTMLid,$HTMLcontenu)
    &#160;&#160;&#160;&#160;{
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $elem&#160;=&#160;$this->dom->createElement('elements');
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->elements&#160;=&#160;$this->main->appendChild($elem);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $id=$this->dom->createElement('id',$HTMLid);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $contenu=$this->dom->createElement('contenu',$HTMLcontenu);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->elements->appendChild($id);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->elements->appendChild($contenu);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->elements->appendChild($contenu);
    &#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;public&#160;function&#160;
    addScript($script)
    &#160;&#160;&#160;&#160;{
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $java&#160;=&#160;$this->dom->createElement('javascripts',$script);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $this->javascripts&#160;=&#160;$this->main->appendChild($java);
    &#160;&#160;&#160;&#160;}

    &#160;&#160;&#160;&#160;public&#160;function&#160;
    __toString()
    &#160;&#160;&#160;&#160;{
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;
    $this->dom->saveXML();&#160;
    &#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;public&#160;function&#160;
    setHeader()
    &#160;&#160;&#160;&#160;{
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    header("Content-Type:&#160;text/xml");
    &#160;&#160;&#160;&#160;}
    }
    ?>
    que j'utilise ainsi:
    <?
    include_once($_SERVER['DOCUMENT_ROOT']."global/lib.inc.php");
    $contenu=<<<END
    <div>
    &#160;&#160;Text&#160;en&#160;<b>HTML</b>
    &#160;&#160;<textarea>plop</textarea>
    </div>
    END;
    $fluxAjax=new&#160;ajaxFluxXML();
    $fluxAjax->addElement($_POST['noeuddest'],$contenu);
    $fluxAjax->addScript("alert('bonjour');");
    $fluxAjax->addScript("alert('bonjour2');");
    $fluxAjax->setHeader();
    print&#160;
    $fluxAjax;
    ?>
    Et le code javascript qui récupere le DOM:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function parseXMLresponse(reponseXML)
    {
    	var elems = reponseXML.getElementsByTagName('elements'); 
    	var javas = reponseXML.getElementsByTagName('javascripts'); 
    	 for(var i=0;i<elems.length;i++) { 
    	 	var id=elems[i].getElementsByTagName('id')[0].firstChild.nodeValue; 
    	 	var contenu=elems[i].getElementsByTagName('contenu')[0].firstChild.nodeValue; 
    	 	document.getElementById(id).innerHTML=contenu;
    	 }
    	 for(var i=0;i<javas.length;i++) { 
    	 	var scp=javas[i].firstChild.nodeValue; 
    	 	eval(scp);
    	 }
    }
    Voila voila, je débute avec l'objet DOM donc c'est surement améliorable..

    Merci encore

  5. #25
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut

    en fait ce que j'utilise dans mon appli, c est un peu ça,
    j' ai une classe Php qui me génère une réponse xml.

    Bon moi c est des templates smarty que je fetch dans ma reponse mais le principe reste le même

    Mais ce qui est bizarre c est que ça marche pour moi sur ie mon addchild

    La différence c'est que mon html est dans une balise <response></response> de mon fichier xml.

    Donc pas directement le documentElement en fait.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

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