Bonjour à tous,
Je suis dans mes débuts en Ajax et voilà déjà que je rencontre des difficulté.
J'essaye de mettre en place un script à utiliser sur mon formulaire qui vérifie l'existence du Pseudo quand le champs pseudo perd le focus. Le problème est que même quand je saisi un pseudo existant ou non, le résultat reste le même :"existe", puis-je savoir à quel niveau je pèche s'il vous plait?
pour être claire, je vais poster les bouts de codes:
Pour le Javascript:
Et le contenu du pichier verifpseudo.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
29
30
31 function req_pseudo(champ) { var valeur=champ.value; //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("labelpseudo"); //zone d'affichage XhrObj.open("POST", "verifpseudo.php"); //Ok pour la page cible XhrObj.onreadystatechange = function() { if (XhrObj.readyState == 4 && XhrObj.status == 200) { if (XhrObj.responseText == '1') { // ok nouveau pseudo content.innerHTML=XhrObj.responseText + valeur +'<img src="images/refuser.png" alt=""/> Désolé, Ce Pseudo est Déjà pris'; } else { // erreur pseudo déjà existant content.innerHTML=XhrObj.responseText +'<img src="images/accepter.png" alt=""/> Ok'; //content.innerHTML=XhrObj.responseText + '<img src="images/refuser.png" alt=""/> Désolé, Ce Pseudo est Déjà pris'; //surligneErreur(champ, true); } } } XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); XhrObj.send('p='+valeur); }
et enfin une partie de mon formulaire
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 <?php session_start(); //Maintenant, on se connecte à la base de données include("includes/identifiants.php"); mysql_connect($adresse, $nom, $motdepasse); mysql_select_db($database); $pseudo = htmlentities(addslashes($_POST['p'])); if (!empty($pseudo)) { $req_pseudo_exist="SELECT membre_id FROM forum_membres WHERE membre_pseudo='".$pseudo."'"; $pseudo_exist=mysql_query($req_pseudo_exist); if(mysql_num_rows($pseudo_exist)> 0) { echo '1'; } else { echo '0'; } } ?>
Ainsi, j'ai donc stocké dans la variable 'valeur' la valeur du 'champ', et c'est cette valeur qui est envoyée par la requête. Mais au retour du résultat, n'est exécuté que ce qui se trouve dans le Else, que XhrObj.responseText donne 1 ou 0, pourtant, logiquement, si XhrObj.responseText=='1'; c'est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <form method="post" name="formulaire" action="registerok.php" enctype="multipart/form-data" onsubmit="return verifier(this);"> <fieldset><legend>Identifiants</legend> <label for="pseudo">* Pseudo :</label> <input name="pseudo" type="text" id="pseudo" onblur="req_pseudo(this)"/><span class="msgerreur" id="labelpseudo"></span> <br /> <p><input type="submit" value="S'inscrire" /></p></form>
qui devait s'éxécuter non? mais j'ai tout le temps, dans le Span de la notification, soit 1 Ok ou 0 Ok.
Code : Sélectionner tout - Visualiser dans une fenêtre à part content.innerHTML=XhrObj.responseText + valeur +'<img src="images/refuser.png" alt=""/> Désolé, Ce Pseudo est Déjà pris';
Merci d'avance!
Partager