Problème avec xmlHttp.responseText (JS)

Fermé
nicl75 Messages postés 3 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 27 novembre 2008 - 16 mars 2008 à 15:22
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 16 mars 2008 à 18:52
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";
?>

3 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
16 mars 2008 à 17:12
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
Merci je vais essayé ta solution.

Je l'ai nommé xmlHttp car je pense le ré-utiliser plus tard en traitant du xml.
0
nicl75 Messages postés 3 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 27 novembre 2008
16 mars 2008 à 17:47
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
16 mars 2008 à 18:52
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