Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

Requête base de données non fonctionnel


Sujet :

AJAX

  1. #1
    Membre du Club
    Requête base de données non fonctionnel
    Bonjour,

    Je viens de débuter ajax/javascript et visiblement il y a une erreur dans mon code.

    Je souhaite vérifier si un pseudo est utilisé lorsque j'ai rempli la case pseudo de mon formulaire.

    Côté php tout fonctionne, mais le script ne revoie pas de message...

    Coté php vous pouvez voir une version basique ici : http://s778507283.onlinehome.fr/chec...ta.php?q=natsu (renvoie taken et natsu2 renvoie not_taken par ex)

    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
    function checkPseudo(str) {
      var xhttp;
      if (str.length == 0) { 
        document.getElementById("pseudocomp").innerHTML = "";
        return;
      } else {
        xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function() {
          if (this.readyState == 4 && this.status == 200) {
            document.getElementById("pseudocomp").innerHTML = this.responseText;
          }
        };
        xhttp.open("GET", "check-data.php?q=" + str, true);
        xhttp.send();
      }
    }


    Html :

    Code HTML :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div class="form-group">
          <div class="input-group">
                 <div class="input-group-prepend">
                        <span class="input-group-text"><i class="ya ya-user"></i></span>
                 </div>
                        <input type="text" name="pseudo"  onBlur="checkPseudo()" class="form-control" id="pseudo" placeholder="Pseudo" required>
          </div>
           <small id="pseudocomp" class="form-text text-muted"></small>
    </div>


    Merci pour votre aide et vos éclaircissements.

  2. #2
    Modérateur

    Bonjour,
    tu ne passes pas de paramètre à ta fonction donc la première condition est toujours vrai.
    Code html :Sélectionner tout -Visualiser dans une fenêtre à part
    <input type="text" name="pseudo"  onBlur="checkPseudo()" ...>

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    function checkPseudo(str) { // que vaut str ???

  3. #3
    Membre du Club
    str est censé avoir pour valeur la donnée entrée dans le champ pseudo.

    J'ai testé en faisant

    Code html :Sélectionner tout -Visualiser dans une fenêtre à part
    <input type="text" name="pseudo"  onBlur="checkPseudo(#pseudo)" ...>


    Mais visiblement ce n'est pas bon non plus.

    Manque t'il quelque chose dans le code en lui même ?

  4. #4
    Modérateur

    str est censé avoir pour valeur la donnée entrée dans le champ pseudo.
    Ben non ! il te faut mettre la valeur en utilisant dans ton cas this.value
    Code html :Sélectionner tout -Visualiser dans une fenêtre à part
    <input type="text" name="pseudo"  onBlur="checkPseudo(this.value)" ...>

  5. #5
    Membre du Club
    D'accord cela fonctionne.

    Je me coucherai moins con

    Merci