Problème avec xmlHttp.responseText (JS)

nicl75 Messages postés 3 Statut Membre -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,

j'ai un petit problème avec le javascript.

Mon but est de valider un formulaire en javascript, j'arrive parfaitement à passer les valeurs des champs au fichier php qui va les inséré dans la bdd mais je n'arrive pas a récupérer la réponse de ce fichier php.

J'ai beaucoup surfé mais je n'ai as encore trouvé mon erreur, aidez moi svp.

Voici mon code JS :
if(xmlHttp) {
      xmlHttp.open('POST', 'setdata.php', true);
      xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttp.send('nom='+document.forms[1].elements[3].value+'&prenom='+document.forms[1].elements[4].value+'&adresse='+document.forms[1].elements[5].value+'&codep='+document.forms[1].elements[6].value+'&ville='+document.forms[1].elements[7].value+'&mail='+document.forms[1].elements[8].value+'&datedn='+alldatedn+'&login='+document.forms[1].elements[13].value+'&password='+document.forms[1].elements[14].value+'&sexe='+sexeok);
      xmlHttp.onreadystatechange = function () {
        if (xmlHttp.readyState == 4) alert("Réponse = "+xmlHttp.responseText); 
      };
    }


et mon fichier setdata.php :
<?php
  header("Expires: Sat, 05 Nov 2005 00:00:00 GMT");
  header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
  header("Cache-Control: no-store, no-cache, must-revalidate");
  header("Cache-Control: post-check=0, pre-check=0", false);
  header("Content-Type: text/html; charset=UTF-8");
  header("Pragma: no-cache");
  echo "Insertion ok";
?>
Configuration: Windows XP
Firefox 2.0.0.12

3 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    Bonsoir,

    il faut faire un test supplémentaire pour verifie que la réponse est bien arrivée complétement:

    if (xmlHttp.readyState == 4) {
    		if (xmlHttp.status == 200) {
    //la suite du traitement de la réponse
    
    


    pourquoi l'as tu nommée xmlHttp alors que tu veux une réponse en mode texte ?
    1
  2. nicl75
     
    Merci je vais essayé ta solution.

    Je l'ai nommé xmlHttp car je pense le ré-utiliser plus tard en traitant du xml.
    0
  3. nicl75 Messages postés 3 Statut Membre
     
    Voici l'erreur que je reçois après la modification que tu m'as conseillé :

    Erreur : [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: http://localhost/Web/php/inscription.php? :: anonymous :: line 64" data: no]

    iif(xmlHttp)
        {
          xmlHttp.open('POST', 'setdata.php', true);
          xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
          xmlHttp.send('nom='+document.forms[1].elements[3].value+'&prenom='+document.forms[1].elements[4].value+'&adresse='+document.forms[1].elements[5].value+'&codep='+document.forms[1].elements[6].value+'&ville='+document.forms[1].elements[7].value+'&mail='+document.forms[1].elements[8].value+'&datedn='+alldatedn+'&login='+document.forms[1].elements[13].value+'&password='+document.forms[1].elements[14].value+'&sexe='+sexeok);
          xmlHttp.onreadystatechange = function () {
            if (xmlHttp.readyState == 4) {
              if (xmlHttp.status == 200) alert("Marcel2 = "+xmlHttp.responseText);
              }
          };
    }
    


    Je vais chercher la solution mais si quelqu'un a une idée, je ne suis pas contre...
    0
    1. Alain_42 Messages postés 5413 Statut Membre 904
       
      je pense que le iif(...) est une erreur de copier coller ?

      Regardes ton code, j'ai fait un copier coller dans notepad++ et j'ai des trucs bizarres dans la ligne xmlHttp.send(...

      il y a de temps en temps un - en trop.
      0