[AJAX] Formulaire dynamique
Bonsoir , j'ai encore un problème avec AJAX que j'arrive pas a résoudre.
Enfet je veux vérifier dans mon formulaire dynamique , si le pseudo n'est déja pas contenue dans la BDD.
Regardez la fonction de vérification du pseudo:
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| check['login'] = function() {
var login = document.getElementById('login'),
tooltipStyle = getTooltip(login).style;
var retour = true;
if (login.value.length >= 4) {
login.className = 'correct';
tooltipStyle.display = 'none';
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://poliboolold.fr/membres/ajax_pseudo.php?pseudo='+login.value , false);
xhr.send(null);
xhr.onreadystatechange = function() {
alert("you");
if(xhr.readyState == 4) {
if (xhr.responseText.length != 7) {
login.className = 'correct';
tooltipStyle.display = 'none';
} else {
login.className = 'incorrect';
document.getElementById('login1').innerHTML = 'Le pseudo est déja pris.';
tooltipStyle.display = 'inline-block';
retour = false;
}
}
}
}
else {
login.className = 'incorrect';
document.getElementById('login1').innerHTML='Le pseudo doit faire au moins 4 caractères';
tooltipStyle.display = 'inline-block';
retour = false;
}
return retour;
}; |
Et la page ajax_pseudo.php:
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
| <?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=;dbname=', '', '', $pdo_options);
$req= $bdd->prepare('SELECT id FROM membres WHERE pseudo=:pseudo');
$req->execute(array('pseudo'=> $_GET['pseudo']));
$resultat= $req->fetch();
if($resultat)
{
echo utf8_decode("warning");
}
else
{
echo utf8_decode("gut");
}
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?> |
Et maintenant testez le formulaire ici . Mettez "poliboolold" comme pseudo , cliquez sur "m'inscrire " et vous verrez que le message d'erreur ne s'affiche pas.
S'il vous plait , aidez moi , cela fait 1 semaine que j'y comprend rien.Comment y remedier?
Merci