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

AJAX Discussion :

[AJAX] récupérer du XML par Ajax.


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 1
    Par défaut [AJAX] récupérer du XML par Ajax.
    Bonjour à tous,

    J'ai un problème, j'ai écrit une fonction php-ajax pour récupérer des valeurs d'une requête sql par ajax avec de l'XML.

    Cette fonction fonctionne très bien en local, par contre, si je l'installe sur le serveur web public ça ne fonctionne plus...

    Après avoir testé avec FireBug, ce serait juste la récupération du XML qui ne fonctionne pas (si je récupère uniquement le texte en mettant la variable XML à false dans l'appel, j'ai bien toutes les balies et réponses XML)

    Pour info:
    Ma fonction JavaScript est: (le problème est dans la réponse, même l'alert ne marche pas...(j'ai essayé avec et sans))

    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
    function ModifClient()
    {
    document.getElementById("titreclient").innerHTML = "Modification d'un client";
    AnnulerEntree();
    returnValue =0;
    var rads = document.getElementsByName("IDClient");
      for(var rad in rads) {
        if(rads[rad].checked)
          returnValue = ( rads[rad].value);
      }
    if (returnValue==0){
    alert ("Vous devez sélectionner un client");
    }
    else{
    param = "ajaxval=modifentree&ajoutIDClient="+returnValue;
    ajax("POST","testsql",param,ModifEntree_OK,true);
    }
    }
    function ModifEntree_OK(reponse)
    {
    alert (reponse.getElementsByTagName('Nom').item(0).firstChild.data);
    if (reponse.getElementsByTagName('Nom').item(0).firstChild) document.getElementById("ajoutNom").value = reponse.getElementsByTagName('Nom').item(0).firstChild.data;
     
    if (reponse.getElementsByTagName('Prenom').item(0).firstChild) document.getElementById("ajoutPrenom").value = reponse.getElementsByTagName('Prenom').item(0).firstChild.data;
     
    ...

    Mon fichier PHP est: (j'ai essayé avec et sans la ligne echo "'<?xml version="1.0" encoding="utf-8"?>';"

    Code php : 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
    51
    if ($ajaxval == 'modifentree')
    {
    header("content-type: application/xml");
    echo '<?xml version="1.0" encoding="utf-8"?>';
    $IDClient11 = $_POST['ajoutIDClient'];
    $req1 = mysql_query("SELECT * from client where IDClient = " . $IDClient11);
    if (@mysql_num_rows($req1) != 0)
    {
    while($data = mysql_fetch_assoc($req1)) 
    {
    $_SESSION['ClientModif'] = $data['IDClient'];
    echo "<reponse>
                      <Nom>".$data['Nom']."</Nom>
                       <Prenom>".$data['Prenom']."</Prenom>
                       <Rue>".$data['Rue']."</Rue>
                       <Numero>".$data['Numero']."</Numero>
                       <Bte>".$data['Bte']."</Bte>
                       <CP>".$data['CP']."</CP>
                       <Localite>".$data['Localite']."</Localite>
                       <Tel>".$data['Tel']."</Tel>
                       <GSM>".$data['GSM']."</GSM>
                       <EMail>".$data['EMail']."</EMail>
                       <Langue>".$data['Langue']."</Langue>
                       <Proprietaire>".$data['Proprietaire']."</Proprietaire>
                       <LogementSocial>".$data['LogementSocial']."</LogementSocial>
                       <AccordProprietaire>".$data['AccordProprietaire']."</AccordProprietaire>
                       <TypeHabitation>".$data['TypeHabitation']."</TypeHabitation>
                       <Distance>".$data['Distance']."</Distance>
                       <ConfigInternet>".$data['ConfigInternet']."</ConfigInternet>
                       <PowerPlugDuo>".$data['PowerPlugDuo']."</PowerPlugDuo>
                       <PowerPlugSup>".$data['PowerPlugSup']."</PowerPlugSup>
                       <LivraisonPack>".$data['LivraisonPack']."</LivraisonPack>
                       <Commentaires>".$data['Commentaires']."</Commentaires>
    <statut>".$data['Statut']."</statut>";
    if ($data['DatePlanifiee']){
    $ajoutPlanifiee_explosee = explode("-", $data['DatePlanifiee']);
    $annee1 = $ajoutPlanifiee_explosee[0];
    $mois1 = $ajoutPlanifiee_explosee[1];
    $jour1 = $ajoutPlanifiee_explosee[2];
    echo "<planifiee>".$jour1."/".$mois1."/".$annee1."</planifiee>";
    }
    else
    {
    echo "<planifiee></planifiee>";
    }
    echo "<installateur>".$data['IDInstallateur']."</installateur>
    <Vendeur>".$data['IDVendeur']."</Vendeur>
             </reponse>" ;
    }
    }
    }

    Voilà, si vous avez une idée Merci d'avance!

  2. #2
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    rien a voir avec ajax

    si je lit ton code php je dirais quil y a de forte chance pour que le XML produit soit incorect

    dans ta methode ModifEntree_OK() vérifie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlHttpRequest.responseXML.parseError.errorCode
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlHttpRequest.responseXML.parseError.reason
    ça te donnera la raison de l'erreur
    tu n'as pas donné ta fonction ajax() j'spère que tu teste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlHttpRequest.readyState == 4
    enfin la génération de XML à la "MAIN" en php est archaique source d'erreur et peut efficace.

    regarde des chose comme http://www.devexp.eu/2009/04/11/php-...-array-to-xml/ ou encore
    http://darklaunch.com/2009/05/23/php...ml-json-encode

    je ne connais pas bien mysql mais pgsql oracle et bien d'autre t permettent de faire des requête qui te retourne directement du xml
    A+JYT

  3. #3
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205

Discussions similaires

  1. récupérer variable url par ajax
    Par jules_diedhiou dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/01/2012, 13h00
  2. [AJAX] Récupérer noeud généré par ajax
    Par pluche52 dans le forum AJAX
    Réponses: 5
    Dernier message: 10/01/2011, 18h11
  3. [AJAX] Récupérer les xml:id dans des div id
    Par Andro dans le forum AJAX
    Réponses: 2
    Dernier message: 29/12/2009, 10h12
  4. [AJAX] Récupérer $_POST actualisé par AJAX
    Par me-to-you93 dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 03/03/2008, 09h09
  5. [AJAX] récupérer données transmises par php
    Par Maryy dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/01/2007, 16h07

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