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] Lecture de donn�es XML


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2005
    Messages
    2
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 2
    Par d�faut [AJAX] Lecture de donn�es XML
    Je suis en train de r�aliser un petit outil en PHP/MySQL et Ajax.

    Dans une page, j'ai un champs select avec � cot� un champs de type Text et un bouton "envoyer".

    Quand on rentre du texte dans le champs et qu'on clic sur "envoyer", un requete est envoy� au serveur pour enregistrer le texte en BDD puis le script php renvoie en XML le texte et l'id de l'enregistrement. Ces donn�es doivent etre rajouter dans le select.

    Pour ce qui est de l'envoie, tout se passe bien, l'enregistrement en BDD se passe bien et le script renvoie bien du XML.

    Dans mon javascript, quand je fait un "alert(responseXML)", j'ai bien � l'affichage:

    <?xml version='1.0'?>
    <resultat>true</resultat>
    <opt id='1'>directeur</opt>
    un responseXML me renvoie [object XMLDocument]

    mais je me retrouve quand m�me avec l'erreur:
    Erreur : donn�es incompr�hensibles apr�s l'�l�ment de document
    Fichier source : http://127.0.0.1/annuaire/fonctions/...pe_contact.php
    Ligne : 3, Colonne : 1
    Code source :
    <opt id='7'>autre</opt>^
    Ca fait deux heures que je suis dessus � pas trouver quoi faire, merci de m'aider.

    voici le javascript:

    var http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {
    http_request.overrideMimeType('text/xml');
    }
    } else if (window.ActiveXObject) { // IE
    try {
    http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
    http_request = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {}
    }
    }

    if (!http_request) {
    alert('Abandon Impossible de cr�er une instance XMLHTTP');
    return false;
    }
    //alert(http_request.readyState);
    parameters=get('new'+emplacement);
    http_request.onreadystatechange = function() { modifyContents(http_request, emplacement); };
    http_request.open('POST', url, true);
    http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http_request.setRequestHeader("Content-length", parameters.length);
    http_request.setRequestHeader("Connection", "close");
    //alert(parameters);
    http_request.send(parameters);
    }

    function modifyContents(http_request, emplacement) {

    //alert(http_request.readyState);
    //alert(http_request.status);
    if (http_request.readyState == 4) {
    //alert(http_request.status);
    if (http_request.status == 200) {
    var XMLDoc = http_request.responseXML ;
    alert(http_request.responseText);
    alert(XMLDoc);
    var tabresultat= XMLDoc.getElementsByTagName('resultat').item(0);
    var resultat=tabresultat.firstChild.nodeValue;
    alert(resultat);

    var option = XMLDoc.getElementsByTagName("opt");
    for (var i = 0; i < option.length; i++) {
    var tabvaleur = option[i].getElementsByTagName("valeur");
    var valeur=tabvaleur[0].firstChild.nodeValue;
    var tabid = option[i].getElementsByTagName("id");
    var id=tabid[0].firstChild.nodeValue;
    alert(valeur+", "+id);
    }



    //ajouter_choix(emplacement,
    } else {
    alert('Un probl�me est survenu avec la requ�te.');
    }
    }

    }
    et le script php:

    <?php
    session_start();
    header( 'Content-Type:text/xml;charset:UTF-8' );
    $typecontact=$_POST['nomtypecontact'];
    $sql_insert_type_contact="insert into annuaire_type_contact values ('', '$typecontact')";
    require("inc_connect_db.php");
    $res_insert_type_contact = mysql_query($sql_insert_type_contact);
    echo("<?xml version='1.0'?>\n");
    if ($res_insert_type_contact){
    $id_type_contact=mysql_insert_id();
    mysql_close($cnx);
    echo("<resultat>true</resultat>\n");
    echo("<opt id='$id_type_contact'>");
    echo(utf8_encode($typecontact));
    //echo("<id>$id_type_contact</id>\n");
    echo("</opt>\n");
    } else {
    echo("<resultat>false</resultat>\n");
    }
    ?>

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par d�faut
    Le probl�me n'est pas le code javscript ou HTML, mais bien XML.

    XML impose d'avoir un et un seul tag racine. Or dans ce code, il y en a deux :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    <?xml version='1.0'?>
    <resultat>true</resultat>
    <opt id='1'>directeur</opt>
    XML ne consiste pas simplement en la mise en balise de texte, il a quelques restrictions suppl�mentaires.

    L'id�al pour ce faire serait de modifier le code comme suit :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    <?xml version="1.0"?>
    <maBalise>
      <resultat>true</resultat>
      <opt id="1">directeur</opt>
    </maBalise>
    et � v�rifier �galement : XML n'impose-t-il pas l'utilisation de guillemets doubles pour les attributs ?

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2005
    Messages
    2
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 2
    Par d�faut
    Merci, c'�tait bien ca.

    J'aurais du m'en appercevoir car j'ai eesayer de faire en retour un xml avec une seulle ligne et ca marchait, pas avec deux.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par d�faut
    De rien

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [Visiteur] [C#] Lecture de donn�es XML, Csv
    Par al2000 dans le forum Design Patterns
    R�ponses: 1
    Dernier message: 19/07/2011, 15h09
  2. R�ponses: 3
    Dernier message: 22/10/2010, 07h15
  3. ajax lecture dans fichier xml sans serveur
    Par TERRIBLE dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 10/03/2008, 12h19
  4. [AJAX] Recuperer des donnes xml
    Par bourvil dans le forum G�n�ral JavaScript
    R�ponses: 11
    Dernier message: 28/07/2006, 08h39
  5. [FLASH MX2004] [XML] Lecture de donn�es XML
    Par ZiT dans le forum Flash
    R�ponses: 1
    Dernier message: 12/07/2005, 11h51

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