Partage
  • Partager sur Facebook
  • Partager sur Twitter

[AjaX/JS]Impossible de finir de transmettre les données

Sujet résolu
    4 octobre 2008 à 22:52:29

    salut tous!
    donc j'ai le code suivant qui devrait me faire un traitement en ajax, mais il y a un hic, impossible de le trouver :s je n'ai même pas le alert qui s'affiche :o

    Merci d'avance

    var xhr
      if (window.XMLHttpRequest)  xhr = new XMLHttpRequest();
      else if (window.ActiveXObject) {
    	try { // essaie de charger l'objet pour IE
    	  xhr = new ActiveXObject("Msxml2.XMLHTTP");
    	}
    	catch (e) {
    	  try  { // essaie de charger l'objet pour une autre version IE
    		xhr = new ActiveXObject("Microsoft.XMLHTTP");
    	  } 
    	  catch (e) {
    		window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest.");
    	  }
    	} 
      }
      function valid_inscription() {
    	document.getElementById('validate').disabled = true;
    	xhr.open("POST", "traitement_ajax.php", true);//Ouverture du fichier en POST
    	xhr.onreadystatechange = function() {//Quand on transmet les données
    	  alert(xhr.responseText);
    	  if(xhr.readyState == 4 && xhr.status == 200) {//Données transmises avec succès
    		document.getElementById('ajax_info').innerHTML = xhr.responseText;
    		var regex = new RegExp("^<div class=\"ok");
    		if(!regex.test(xhr.responseText))//Si y a eu erreur
    		  document.getElementById('validate').disabled = false;
    		else
    		  document.getElementById('form').style.display = 'none';
    	  }
    	var data = 'pseudo='+encodeURIComponent(document.getElementById('pseudo'));
    	data+= '&pw1='+escape(document.getElementById('pass1'));
    	data+= '&pw2='+escape(document.getElementById('pass2'));
    	data+= '&mail='+escape(document.getElementById('mail'));
    	data+= '&mail2='+escape(document.getElementById('mail2'));
    	data+= '&robot='+escape(document.getElementById('robot'));
    	if(document.getElementById('nwsl').checked == true)
    	  data+= '&nwsl=1';
    	if(document.getElementById('rgl').checked == true)
    	  data+= '&rgl=1';
    	xhr.setRequestHeader('Content-type', 'application/x-www-from-urlencoded');//Transmision du header
    	xhr.send(data); //transmision des données
    	}
      }
    

    <div id="ajax_info">
    	  </div>
    	  <div id="form">
    		<form class="inscription" action="javascript:valid_inscription()" method="post">
    		  <p>
    			<label for="pseudo" class="champ1"><b>Pseudo</b> <i><small>4 ~ 12 Caract&egrave;res Alpha-Num&eacute;rique</small></i></label>
    			<input type="text" name="pseudo" id="pseudo" class="pseudo" />
    		  </p>
    		  <p>
    			<label for="pass1" class="champ1"><b>Mot de pass</b> <i><small>6 ~ 20 Caract&egrave;res</small></i></label>
    			<input type="password" name="pass1" id="pass1" class="password"/>
    		  </p>
    		  <p>
    			<label for="pass2" class="champ1"><b>Mot de pass</b> <i><small>V&eacute;rification du mot de pass</small></i></label>
    			<input type="password" name="pass2" id="pass2" class="password"/>
    		  </p>
    		  <p>
    			<label for="mail" class="champ1"><b>Adresse e-mail</b> <i><small>Afin de valider l'inscription</small></i></label>
    			<input type="text" name="mail" id="mail" class="mail"/>
    		  </p>
    		  <p>
    			<label for="mail2" class="champ1"><b>Adresse e-mail</b> <i><small>V&eacute;rification du mail</small></i></label>
    			<input type="text" name="mail2" id="mail2" class="mail"/>
    		  </p>
    		  <p>
    			<label onclick="refresh_img()" for="robot" class="champ1 click"><b>Retappez le code</b> <img id="img_capcha" src="image.php" alt="IMAGE" /></label>
    			<input type="text" name="robot" id="robot" class="robot"/>
    		  </p>
    		  <p class="chackbox">
    			<input type="checkbox" name="nwsl" id="nwsl" checked="checked"/>
    			<label for="nwsl"><b>Je souha&icirc;te recevoir la <i>newsletter</i></b></label><br />
    			
    			<input type="checkbox" name="reglement" id="rgl" />
    			<label for="rgl"><b>J'ai lu <b>et</b> j'accepte le r&egrave;glement du site</label>
    		  </p>
    		  <p class="submit">
    			<input type="submit" id="validate" value="Envoyer" />
    		  </p>
    		</form>
    	  </div>
    
    • Partager sur Facebook
    • Partager sur Twitter
      5 octobre 2008 à 21:26:12

      Ton alert il est mal placé il faut le mettre dans la condition:
      if(xhr.readyState == 4 && xhr.status == 200) {
      

      Et puis bah globalement c'est louche ton affaire.. T'as testé sans le && xhr.status == 200 ?
      • Partager sur Facebook
      • Partager sur Twitter

      [AjaX/JS]Impossible de finir de transmettre les données

      × 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