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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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