Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec l'objet XMLHttpRequest

Utilisation d'Ajax / Javascript / PHP

Sujet résolu
    12 mai 2010 à 9:52:48

    Bonjour à tous,
    Cela est mon premier post sur le forum est j'espère que vous pourrez m'aider.
    J'ai commencé l'apprentissage du langage Ajax hier, et j'ai un petit problème au niveau du résultat du code.
    Le voici :
    function request(callback) {
    	var xhr = getXMLHttpRequest();
    
    	xhr.onreadystatechange = function() {
    		if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
    			callback(xhr.responseXML);
    		}
    	};
    
            var siret = encodeURIComponent(document.gestionPaie.siret.value); // Ligne qui fonctionne
    
    	xhr.open("GET", "rechercheSIRET.php?siret="+siret, true);
    	xhr.send(null);
    }
    
    function readData(sData) {
        
        document.getElementById("VSiret").innerHTML = sData; // Ligne qui pose problème
    }
    

    Donc ce code a été vu sur le site du zéro, dans le tuto sur le langage Ajax.

    <?php
         mysql_connect("localhost","root","");
         mysql_select_db("aps");
    
         header("Content-Type: text/plain");
    
         $siret = (isset($_GET['siret'])) ? $_GET['siret'] : NULL;
    
         $result = mysql_query('SELECT * FROM organisme WHERE siret='.$siret);
         $organisme = mysql_fetch_array($result);
         
             if($siret == $organisme['siret'])
                echo 'Vous êtes '.$organisme['raisonSociale'].'.';
             else
                echo "Votre numéro SIRET n\'est pas enregistré dans la base de données";
    ?>
    


    Et voici le code PHP qui me permet de récupérer le nom de l'organisme dont le numéro Siret est censé se trouver dans le formulaire ci-dessous.

    <form name="gestionPaie" action="emploi.php?page=paie" method="POST">
            <table>
                <tbody>
                <tr>
                    <td>N° SIRET : </td>
                    <td><input type="text" name="siret" /></td>
                    <td><input type="button" value="Envoyer" name="envoyer" onclick="request(readData);"/></td> <!-- J'avais d'abord essayé le "onblur" au niveau du champ texte -->
                </tr>
                </tbody>
            </table>
            <div id="VSiret"> </div>
        </form>
    


    Donc je vous expose maintenant mon problème. Normalement, le nom de l'organisme devrait s'afficher avec la fonction .innerHTML (que j'ai déjà utilisé plusieurs dans le codage du site) et pourtant quand je lui demande d'écrire ce que je veux, rien ne se passe.
    De plus, quand j'ai utilisé la fonction "alert(sData)", il affichait "null".
    Pourtant sous Firebug, il n'y a pas d'erreur notable.

    J'utilise Chrome et Firefox, et sur ces deux navigateurs, rien ne se passe.

    Si vous avec d'autres questions ou si vous voulez des précisions, n'hésitez pas.
    • Partager sur Facebook
    • Partager sur Twitter
      12 mai 2010 à 9:56:44

      On peut voir l'appel à ta fonction? Et le xhr.send(null), je doute que ce soit ce qu'il faut mettre pour envoyer le numero siret :p
      • Partager sur Facebook
      • Partager sur Twitter
        12 mai 2010 à 10:05:57

        Euh, comme tu peux le voir l'appel à la fonction se fait au niveau du formulaire HTML avec la fonction "onclick=request(readData);"

        Et pour le xhr.send(null), cela marche puisque sous fireBug, il me renvoie bien le numéro SIRET et ce que je veux (c'est à dire l'organisme correspondant) mais ne l'affiche pas dans la page.

        Je peux te faire un screenshot si tu veux ?
        • Partager sur Facebook
        • Partager sur Twitter
          12 mai 2010 à 10:20:22

          Pff, désolé, jsuis mal reveillé ><

          Le problème viens de la ligne callback(xhr.responseXML);. Dans ton php, tu n'envois pas du XML, du coup responseXML est null. Utilise responseText à la place et ça devrait être bon.
          • Partager sur Facebook
          • Partager sur Twitter
            12 mai 2010 à 10:23:46

            Ouah, c'était juste ça >_<

            Je te remercie, je vais pouvoir retourner au codage du site

            Salut
            • Partager sur Facebook
            • Partager sur Twitter

            Problème avec l'objet XMLHttpRequest

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown