Verification de l'existance d'un pseudo dans la db via ajax

Jojodebaby Messages postés 77 Statut Membre -  
Jojodebaby Messages postés 77 Statut Membre -
slt, svp j'ai lu beaucoup de tuto mais je n'y parviens vraiment pas...
En effet je voudrais vérifier le pseudo saisie dans un formulaire avant qu'il soit posté.
cette vérification consiste à afficher "ce pseudo existe déjà" en cas de doublons ou "pseudo libre vous pouvez l'utiliser" mais je butte à chaque fois.
une explication très simple serait la plus attendue
merci de votre aide !!!
NB: je debute avec ajax donc soyer indulgent!

4 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,

    Je peux t'aider pas de soucis...
    Commence par nous montrer le code que tu as essayé de mettre en place.
    0
  2. Jojodebaby Messages postés 77 Statut Membre 11
     
    Ok merci Jordane je te donne les codes c'est trois pages:
    // page html qui appel la fonction verification() qui est sur le fichier traitement.js
    <html xmlns="[http://www.w3.org/1999/xhtml]">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=urf-8" />
    <title>REVU SUR AJAX</title>
    <script type="text/javascript" src="traitement.js"></script>
    <link rel="stylesheet" href="revu.css" />
    </head>
    <body><label for="nom" class="dis_form">Nom: </label><input type="text" name="nomclient" id="nomclient" abort="verification();"/> 
    <span class="avert" id="avert1">ce nom est dejà utilisé</span><span class="avert" id="avert2"> nom valide!</span>
    </body>
    </html>
    


    //page formulaire.php de traitement
     <?php
    header("Content-Type: text/plain");
    //rechercher par critere les noms 
    $con = mysqli_connect("localhost", "root","",'projethotel');
    $nomclient=$_GET['nomclient'];
    $sel="SELECT NomClient FROM client WHERE NomClient = '$nomclient' ";
    $req=mysqli_query($con,$sel);
    while($tab = mysqli_fetch_assoc($req)){
     if($tab[i]==$nomclient){
     echo("1");
          }
     else
     {
     echo("2");
     }
    }
    mysqli_free_result($req);
    ?>
    


     //page traitement.js
    
    // JavaScript Document
    //fonction pour desactiver les span 
    function deactivateSpan() {
    var spans = document.getElementsByTagName('span'),
    spansLength = spans.length;
    for (var i = 0 ; i < spansLength ; i++) {
     if (spans[i].className == 'avert') {
     spans[i].style.display = 'none';
     }
    }
    }
    
    //fonction pour activer le span correspondant
    
    //description de l'objet xhr
    function getXMLHttpRequest() {
     var xhr = null;
     
     if (window.XMLHttpRequest || window.ActiveXObject) {
      if (window.ActiveXObject) {
       try {
        xhr = new ActiveXObject("Msxml2.XMLHTTP");
       } catch(e) {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
       }
      } else {
       xhr = new XMLHttpRequest(); 
      }
     } else {
      alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
      return null;
     }
     
     return xhr;
    }
    
    //code de la fonction de verification
    function verification(){
    var nomclient=encodeURIComponent(document.getElementById("nomclient").value);
    var xhr=getXMLHttpRequest() ;
    xhr.onreadystatechange = function() {
     if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
      //traitement pour recuperation 
        if(xhr.responseText==1){
         var span=document.getElementById('avert1');
         span.style.display=='inline';
        }
       else if(xhr.responseText==2){
       var span=document.getElementById('avert2');
       span.style.display=='inline';
      }
        
        alert(xhr.responseText.innerHTML);
     }
    };
    
    xhr.open("GET", "formulaire.php?nomclient=" + nomclient, true);
    xhr.send(null);
    }
    
    
    0
  3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonsoir,
    Désolé pour le délai.. je n'était pas trop dispo..

    Bon.. alors tu dis :

    cette vérification consiste à afficher "ce pseudo existe déjà" en cas de doublons ou "pseudo libre vous pouvez l'utiliser" mais je butte à chaque fois.

    OK.. sur quoi bloques tu exactement ?

    Je pense que ton souci vient de ta page php....
    Essayes ça :

    //page formulaire.php de traitement
     <?php
    header("Content-Type: text/plain");
    $result = "";
    //rechercher par critere les noms 
    $con = mysqli_connect("localhost", "root","",'projethotel');
    $nomclient=isset($_GET['nomclient'])?$_GET['nomclient']:NULL;
    if($nomclient){
      $sel="SELECT NomClient 
               FROM client 
               WHERE NomClient = '$nomclient' ";
      
       $req=mysqli_query($con,$sel);
        if($req){
          $result .='1'; 
        }else{
          $result .= '2';
        }
    }else{
      $result.= "NO CLIENT !";
    }
    
    mysqli_free_result($req);
    
    echo $result;
    
    ?>
    
    


    Nb : Penses à utilises les outils de débogage de ton navigateur internet pour regarder ce qui se passe sur ta page... ( perso j'utilise FIREBUG .. un plugin pour FireFox).

    Avant de poser une question, merci de lire la charte du site.
    Cordialement, Jordane
    0
  4. Jojodebaby Messages postés 77 Statut Membre 11
     
    merci je jette un coup d'oeil rapide et je te fait signe
    0