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] mon retour XML est toujours NULL


Sujet :

AJAX

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut [AJAX] mon retour XML est toujours NULL
    Bonjour tout le monde,

    J'ai cette liste de sélection :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <select name="listChoix_annee" onchange="affichage(this.value)">
    		    <option>Choisissez une année</option> 
    			<option value="General">G&eacute;n&eacute;ral</option>
    		    <option value="BA1">BA1</option>
    		    <option value="BA2">BA2</option>
    		    <option value="BA3">BA3</option>
    		    <option value="MA1">MA1</option>
    		    <option value="MA2">MA2</option>
    	      </select>
    Sur chaque changement, j'appelle une fonction nommée affichage et je lui passe la valeur choisie de la liste de sélection.

    Voici le code de mon fichier javascript :

    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
    40
     
    function affichage(annee)
    {
    		//alert(annee);
    		//je crée un objet de type XMLHTTPREQUEST (j'appelle la fonction)
    		var xhr = getXMLHttpRequest();
    		// On défini ce qu'on va faire quand on aura la réponse
    		xhr.onreadystatechange = function()
    		{
    			//alert(xhr.readyState);
    			if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0 ) )
    			{
     
    				xmlDoc=xhr.responseXML;
    				if(xmlDoc!=null)
    				{
    					document.getElementById("td_annee_de_cours").innerHTML=xmlDoc.getElementsByTagName("annee_cours")[0].childNodes[0].nodeValue;
    					document.getElementById("td_id").innerHTML=xmlDoc.getElementsByTagName("id")[0].childNodes[0].nodeValue;
    					document.getElementById("td_date").innerHTML=xmlDoc.getElementsByTagName("date")[0].childNodes[0].nodeValue;
    					document.getElementById("td_date_expiration").innerHTML=xmlDoc.getElementsByTagName("date_validite")[0].childNodes[0].nodeValue;
    					document.getElementById("td_Titre").innerHTML=xmlDoc.getElementsByTagName("titre")[0].childNodes[0].nodeValue;
    					document.getElementById("Corps").innerHTML=xmlDoc.getElementsByTagName("corps")[0].childNodes[0].nodeValue;
    					document.getElementById("td_auteur").innerHTML=xmlDoc.getElementsByTagName("piece_jointe")[0].childNodes[0].nodeValue;
    					document.getElementById("td_lien").innerHTML=xmlDoc.getElementsByTagName("auteur")[0].childNodes[0].nodeValue;
    					document.getElementById("td_piece_jointe").innerHTML=xmlDoc.getElementsByTagName("lien")[0].childNodes[0].nodeValue;
    				}
    				else
    				{
    					alert("le retour est null");
    				}
     
    			}
    		}
     
    		//Pour montrer une erreur, je pourrais retirer /PENDU et faire un alert de status
    		xhr.open("POST","../AJAX/affichage.php",true);
    		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    		xhr.send("annee="+annee);	
     
    }
    J'arrive dans la fonction, l'alerte que j'ai mis en commentaire me l'a prouvé.

    Je passe donc une information (annee) au fichier php dont voici le code :

    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
    <?php
            header('Content-Type: text/xml');
            header("Cache-Control: no-cache, must-revalidate");
            //A date in the past
            header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
            
            include('../PHP/connexion.php');
            $sql = "SELECT * FROM messages WHERE Annee = '".$_POST['annee']."' ORDER BY ID DESC";
            //echo $sql;
            $req = mysql_query($sql);
            //echo $req; 
            //include('../index/regreplace.php');   
            
            echo '<?xml version="1.0" encoding="ISO-8859-1"?>
            <information>';
            while($row = mysql_fetch_array($result))
            {
                    echo "<annee_cours>" . $row['Annee'] . "</annee_cours>";
                    echo "<id>" . $row['ID'] . "</id>";
                    echo "<date>" . $row['Date'] . "</date>";
                    echo "<date_validite>" . $row['Date_Validite'] . "</date_validite>";
                    echo "<titre>" . $row['Titre'] . "</titre>";
                    echo "<corps>" . $row['Corps'] . "</corps>";
                    echo "<piece_jointe>" . $row['Piece_jointe'] . "</piece_jointe>";
                    echo "<auteur>" . $row['Auteur'] . "</auteur>";
                    echo "<lien>" . $row['Lien'] . "</lien>";
            }
            echo "</information>";
            }
    ?>
    Dans le fichier js, j'ai fait ce test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(xmlDoc!=null)
    				{

    J'obtiens à chaque fois l'alerte me disant que mon retour est null.

    Sauriez-vous me dire pourquoi j'obtiens à chaque fois un retour null ?

    Merci d'avance.

    beegees

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Salut,
    D'après ton requête, j'imagine que cela retourne plusieurs lignes, donc il faut mettre chaque ligne dans une racine.
    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
    echo '<?xml version="1.0" encoding="ISO-8859-1"?>
    	<informations>';
    	while($row = mysql_fetch_array($result))
    	{
    		echo "<information>";
    		echo "<annee_cours>" . $row['Annee'] . "</annee_cours>";
    		echo "<id>" . $row['ID'] . "</id>";
    		echo "<date>" . $row['Date'] . "</date>";
    		echo "<date_validite>" . $row['Date_Validite'] . "</date_validite>";
    		echo "<titre>" . $row['Titre'] . "</titre>";
    		echo "<corps>" . $row['Corps'] . "</corps>";
    		echo "<piece_jointe>" . $row['Piece_jointe'] . "</piece_jointe>";
    		echo "<auteur>" . $row['Auteur'] . "</auteur>";
    		echo "<lien>" . $row['Lien'] . "</lien>";
    		echo "</information>";
    	}
    	echo "</informations>";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var nbligne=xmlDoc.getElementsByTagName('information').length;
    for(var i=0;i<nbligne;i++){alert(xmlDoc.getElementsByTagName("annee_cours")[i].childNodes[0].nodeValue);
    }

Discussions similaires

  1. Mon object est toujours null
    Par rahmoucha dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 20/12/2010, 14h25
  2. [AJAX] Mon retour n'est pas évalué dans mon if
    Par beegees dans le forum AJAX
    Réponses: 3
    Dernier message: 26/03/2009, 09h22
  3. Mon site n'est toujours pas référencé : que faire ?
    Par Thanor dans le forum Référencement
    Réponses: 12
    Dernier message: 15/10/2006, 15h28
  4. Savoir si mon document XML est valide
    Par jsaviola dans le forum Valider
    Réponses: 1
    Dernier message: 28/04/2006, 13h43
  5. [XML]Comment tester que mon fichier XML est comme ceci?
    Par Devil666 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 02/06/2005, 13h41

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