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:
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 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
<?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';
        }
}
?>
et enfin une partie de mon formulaire

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>
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
content.innerHTML=XhrObj.responseText + valeur +'<img src="images/refuser.png" alt=""/> Désolé, Ce Pseudo est Déjà pris';
qui devait s'éxécuter non? mais j'ai tout le temps, dans le Span de la notification, soit 1 Ok ou 0 Ok.

Merci d'avance!