Verification de l'existance d'un pseudo dans la db via ajax [Fermé]

Signaler
Messages postés
70
Date d'inscription
vendredi 14 novembre 2014
Statut
Membre
Dernière intervention
24 novembre 2015
-
Messages postés
70
Date d'inscription
vendredi 14 novembre 2014
Statut
Membre
Dernière intervention
24 novembre 2015
-
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

Messages postés
31197
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 janvier 2021
3 211
Bonjour,

Je peux t'aider pas de soucis...
Commence par nous montrer le code que tu as essayé de mettre en place.
Messages postés
70
Date d'inscription
vendredi 14 novembre 2014
Statut
Membre
Dernière intervention
24 novembre 2015
7
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);
}

Messages postés
31197
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 janvier 2021
3 211
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
Messages postés
70
Date d'inscription
vendredi 14 novembre 2014
Statut
Membre
Dernière intervention
24 novembre 2015
7
merci je jette un coup d'oeil rapide et je te fait signe