[AJAX] Validation d'un formulaire avec Ajax
Bonjour,
je débute avec Ajax.
Je voulais juste tester une chose ^^ j'ai donc mis un champs pseudo que l'utilisateur saisie, est dès lors qu'il quitte le champs texte (avec onblur de javascript), j'envoie une requete, qui va lire en base de données et voir si le pseudo est déjà pris. Mais dans nimporte quel cas il me retourne toujours qu'il est déjà pris.
Voici mon code :
mon fichier test.js
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
var bPseudo = false; // servira pour empêcher de poster le formulaire si vérification pseudo non ok
function req_pseudo(pseudo)
{
//XMLHttpRequest est supporté par Internet Explorer 5.0+, Safari 1.2, Mozilla 1.0 / Firefox, Netscape 7
if(document.all) var XhrObj = new ActiveXObject("Microsoft.XMLHTTP"); //Internet Explorer
else var XhrObj = new XMLHttpRequest(); //Mozilla
content = document.getElementById("pseudo_check"); //zone d'affichage
XhrObj.open("POST", "verification_pseudo.php");
//Ok pour la page cible
XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4 && XhrObj.status == 200) {
if (XhrObj.responseText == 'OK') {
// ok nouveau pseudo
content.innerHTML='<img src="images/success.png" alt=""/> Ok';
} else {
// erreur pseudo déjà existant
content.innerHTML='<img src="images/stop.png" alt=""/> Déjà pris';
}
}
}
XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send('p='+pseudo);
} |
mon fichier verification_pseudo.php
Code:
1 2 3 4 5 6 7 8 9 10
|
<?php
$pseudo = htmlentities(addslashes($_POST['p']));
if (!empty($pseudo))
{
$res = mysql_query("select * from users where pseudo='".$pseudo."'");
echo (($row = mysql_fetch_array($res)) ? 'FAIL' : 'OK');
}
?> |
et ma page index.php
Code:
1 2 3 4 5 6 7 8 9 10
|
<html>
<head>
<script type='text/javascript' src='test.js'></script>
</head>
<body>
<input type="text" name="pseudo" value="" onblur="req_pseudo(this.value);"> <span id="pseudo_check"></span>
<input type="test" name="password" value="">
</body>
</html> |
Si quelqu'un à une idée
Merci d'avance :)