Bonjour,

Je commence à m'intéresser au Javascript et à l'Ajax, et j'aurais besoin de votre aide précieuse.

j'ai un formulaire pour créer un employé, je veux que quand l'utilisateur renseigne un nom et un prénom, il puisse cliquer sur un bouton, qui va générer un login, et l'afficher dans un champ.
Je veux vérifier que ce login n'existe pas dans ma BDD, s'il existe, je lui ajoute un chiffre.

Mon problème, c'est qu'il ne se passe rien lorsque je clique sur le bouton générer....

voici ma page avec le code html et JS :
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
<script type="text/javascript">
 
 
function request(callback) {
  var xhr = getXMLHttpRequest();
 
  xhr.onreadystatechange = function() {
    if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
      callback(xhr.responseText);
    }
  };
 
  var nom = encodeURIComponent(document.getElementById("inputFirstname").value);
  var prenom = encodeURIComponent(document.getElementById("inputLastname").value);
  var login=prenom.substring(0,1)+nom; //concatenation du nom et prénom avec juste la première lettre du prénom
 
// envoie de la variable login a la page de traitement php avec la methode post
xhr.open("POST", "esp_Rh/create_login.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("login=" + login);
}
 
function readData(oData) {
  var nodes   = oData.getElementsByTagName("item"); // récuperer  les infos au format xml dans la page de traitement php
  document.getElementById('inputIdentifiant').value=nodes; //donner la valeur contenu dans nodes à mon input identifiant
}
 
</script>
 
 
<form method="post" action="esp_Rh/addUser.php" id="formulaire">
 
    <div class="form-row">
      <div class="form-group col-md-6">
        <label><b>Nom</b></label>
        <input type="text" class="form-control" id="inputFirstname" placeholder="Entrer le nom de l'utilisateur" name="firstname" required>
      </div>
      <div class="form-group col-md-6">
        <label><b>Prénom</b></label>
        <input type="text" class="form-control" id="inputLastname" placeholder="Entrer le prénom de l'utilisateur" name="lastname" required>
      </div>
 
    </div>
 
  <div class="form-row">
    <div class="form-group col-md-6">
      <label><b>Email</b></label>
      <input type="email" class="form-control" id="inputEmail" placeholder="exemple@mail.fr" name="email">
    </div>
    <div class="form-group col-md-6">
      <label ><b>Confirmer l'Email</b></label>
      <input type="email" class="form-control" id="inputEmail2" placeholder="exemple@mail.fr" name="email2">
     </div>
     </div>
    <div class="form-row">
     <div class="form-group col-md-6">
      <label><b>Mot de passe</b></label>
      <input type='text' class="form-control" id='res' value='' readonly="readonly" name="password" required>
      <input type="button" class="btn" onclick="generatepwd()" value = "generation" />
    </div>
    <div class="form-group col-md-6">
        <label><b>Identifiant</b></label>
        <input type="text" class="form-control" id="inputIdentifiant" value='' readonly="readonly" name="username"  required>
        <input type="button" class="btn" onclick="request(readData);" value = "generation" />
    </div>
  </div>
 
 
</form>
Voici ma page de traitement :
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
 
<?php 
 
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
echo "<list>";
 
$login = (isset($_POST["login"])) ? htmlentities($_POST["login"]) : NULL;
 
function check_statut () //fonction pour vérifier que le login n'exsite pas dans la BDD
	{
 
	$requete = "SELECT count(*) FROM users where 
              login = '".$login."'  ";
    $bdd = include '../db_mysql.php';
    $exec_requete = $bdd->query($requete);
    $reponse = $exec_requete->fetch(PDO::FETCH_ASSOC);
    $resultat = $reponse['count(*)'];
 
    return $resultat;
}
 
function return_login () 
	{
 
 
	if($login) { //on verifie que notre variable ne soit pas vide
 
		if ($result_log !=0) // si la fonction nous retour un count différent de 0 c'est que le login existe
		{
			$login = 'patate'; // du coup ici on change le login
			check_statut(return_login); // ici on boucle jusqu'a ce que le login ne soit pas dans la BDD
	 		echo "<item id=\"" . $login . "\" name=\"" . $login . "\" />";
		}
		else {
			echo "<item id=\"" . $login . "\" name=\"" . $login . "\" />";
		}
 
	}else {
			echo "<item id=\" vide \" name=\"vide\" />";
		}
}
return_login();
echo "</list>";
 
?>
Si quelqu'un a une idée.. Merci