Verification d'adresse email avec ajax [Résolu/Fermé]

maxime.guillaume1 2 Messages postés mercredi 27 avril 2011Date d'inscription 27 avril 2011 Dernière intervention - 27 avril 2011 à 15:39 - Dernière réponse : maxime.guillaume1 2 Messages postés mercredi 27 avril 2011Date d'inscription 27 avril 2011 Dernière intervention
- 27 avril 2011 à 23:24
Bonjour,
J'essaye de vérifier si une adresse email entrée dans un formulaire est correcte. J'ai procédé de la manière suivante : quand on rentre quelque chose dans le champs "email" du formulaire, il appelle la fonction verif() d'un fichier ajax.js. Ensuite mon fichier ajax.js appelle lui la page index.php qui renvoie un echo contenant une image si l'adresse est correcte et une autre image si l'adresse ne l'est pas. L'echo est récupéré par le fichier ajax et le fichier ajax va ecrire dans une balise div le code de l'image. Cette balise se trouve dans mon formulaire et affichera donc l'image voulue a coté de mon input.
L'exemple de ce que je raconte se trouve a la page suivante : http://maxime.guillaume1.free.fr/ajax/
Mon problème est qu'entre deux rafraichissements d'images j'ai un "undefined" qui apparait et comme je débute en ajax je n'en comprends pas la raison ...
Je joins mes fichiers de code.

Fichier qui contient le formulaire :
<html>
<head>
<script type="text/javascript" src="ajax.js"></script>
</head>
<body>
<p>	
	<form method="GET" name="contact">
		<strong>Votre email :</strong><br/>
		<table>
		<tr>	
				<td><input type="text" name="email" size="20" onkeyup="verif()" /></td>
				<td><div id="checkmail"></div></td>
		</tr>
		</table>
	</form>
	
</p>
</form>
</body>
</html>


Fichier ajax.js
function getXhr()
{
	if(window.XMLHttpRequest)
		xhr = new XMLHttpRequest(); 
	
	else if(window.ActiveXObject)
	{
		try
		{
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e)
		{
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	else
	{
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
		xhr = false; 
	} 
	
	return xhr;
}

function writediv(texte)
{
	document.getElementById('checkmail').innerHTML = texte;
}

function verif()
{
	if ( document.contact.email.value.length > 5 )
	{
		var xhr = getXhr();
		xhr.onreadystatechange = function()
		{
			if (xhr.readyState == 4 && xhr.status == 200)
			{
				reponse = xhr.responseText;
				document.getElementById('checkmail').innerHTML = reponse;
			}
		}
		
		writediv( xhr.open('get','index.php?mail=' + document.contact.email.value,true) );
		xhr.send(null);
	} else {
		writediv( '' );
	}
}


Fichier index.php
<html>
<body>

<?php
if ( isset($_GET['mail']) )
verifmail($_GET['mail']);

function verifmail($adresse)
{
   $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
   if(preg_match($Syntaxe,$adresse))
     echo '<img src="img/ok.png">';
   else
     echo '<img src="img/croix.png">';
}

if ( isset($_GET['mail']) )
exit();
?>

</body>
</html>


Merci d'avance
Maxime
Afficher la suite 
2Messages postés mercredi 27 avril 2011Date d'inscription 27 avril 2011 Dernière intervention

2 réponses

ammmmmine 593 Messages postés lundi 22 février 2010Date d'inscription 19 octobre 2013 Dernière intervention - 27 avril 2011 à 20:21
0
Utile
salut,

enleve cette condition : else { writediv( '' ); }
et remplace :
writediv( xhr.open('get','index.php?mail=' + document.contact.email.value,true) );
par :
xhr.open('get','index.php?mail=' + document.contact.email.value,true);
maxime.guillaume1 2 Messages postés mercredi 27 avril 2011Date d'inscription 27 avril 2011 Dernière intervention - 27 avril 2011 à 23:24
0
Utile
ça fonctionne ! Merci beaucoup ammmmmine !