Requete mysql ajax

Bonjour,

Je souhaiterai effectuer une requête Mysql grâce à du javascript/ajax.
Je me suis servit de ce tutoriel https://www.toutjavascript.com/savoir/xmlhttprequest.php3 mais je n'ai aucun résultat.

Voici un extrait de mon code:

J'ai un formulaire qui, au submit appel une fonction Check. Dans cette fonction javascript je contrôle les champs (cette partie fonctionne), puis viens le controle du double pseudo:

var l1    = f.elements["pseudo"]; //mon champs pseudo
	var index = l1.value;  
	if(index < 4)  
	   {}
	else {  
	   var xhr_object = null;  
	      
	   if(window.XMLHttpRequest) // Firefox  
	      xhr_object = new XMLHttpRequest();  
	   else if(window.ActiveXObject) // Internet Explorer  
	      xhr_object = new ActiveXObject("Microsoft.XMLHTTP");  
	   else { // XMLHttpRequest non supporté par le navigateur  
	      alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");  
	      return;  
	   }  
	 
	   xhr_object.open("POST", "check_pseudo.php", true);  //appel ma fonction de controle dans la bdd
	      
	   
	xhr.onreadystatechange = function() {
        //Si la requête est terminée
        if ( xhr.readyState == 4 ) 
          //Si la réponse ne contient pas d'erreur
          if ( xhr.status == 200 ) {
	
//ICI JE SUIS UN PEU PERDU, JE NE SAIS PAS QUOI METTRE
			}
          else //Erreur
           alert ("erreur");
}
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");  
// QUE METTRE ICI ???
data="colonne="+colonne;
xhr.send(data);

	}


ma fonction PHP check_pseudo:

function check_pseudo() {
	
	 
	connectMySQL();
	 
	 $sql = 'SELECT count(*) FROM user WHERE pseudo="'.$_SESSION['pseudo'].'"'; 
         $req = mysql_query($sql) or die(mysql_error()); 
         $data = mysql_fetch_array($req); 
 
         if ($data[0] == 0) { 
		 echo "<script>return true;</script>"; 
		 } 
		 else {
			  echo "<script>return false;</script>";
			  echo "alert('already used');";}
	@mysql_close($mysql_db);  
}


je souhaiterai que ma fonction javascript de check formulaire renvoie false/true suivant si le pseudo est deja utilisé...

j'avoue être un peu perdu à la fin de la fonction javascript.

Pourriez vous m'aider?
merci!

3 réponses

  1. Quand le status est égale à 200 cela veut dire que tout est ok, donc à toi de voir ce que tu veux faire.
    Ensuite lorsque tu fais xhr.send(data)
    data correspond aux valeurs que tu va envoyé à ton fichier check_pseudo.php
    donc à mon avis tu dois récupérer le pseudo pour ensuite faire le traitement dans ta page php
    Je suis rarement claire dans mes explications, donc n'hésite pas à dire si tu comprends rien à ce que je te raconte !
    0
    1. salut,
      j'essaye ça demain! merci :)
      0
      1. Bonjour, j'y suis presque arrivé, en m'inspirant de http://www.editeurjavascript.com/trucs/35,ajax_interrogez_votre_serveur_avec_javascript.php

        j'ai réussit à faire afficher "votre pseudo est trop court" au cours de la frappe.
        mon seul problème est d'écrire correctement cette partie:

        function check_pseudo(pseudo)
             {
             if(pseudo != '')
                       {
                       if(pseudo.length<4)
                                 writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop court</span>');
                       else if(texte = file('checkpseudo?pseudo='+escape(pseudo))) /CETTE LIGNE
                                 {
                  if(texte == 1)
                       writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est deja pris</span>');
                  else if(texte == 2)
                       writediv('<span style="color:#1A7917"><b>'+pseudo+' :</b> ce pseudo est libre</span>');
                  else
                       writediv('');
                                 }
                       }
        
             }
        


        Sur cette page j'ai un include functions.php où se trouve ma fonction PHP "checkpseudo" je dois l'apeller sur la ligne en gras mais je n'y arrive pas. Comment puis-je faire?
        merci!
        0
        1. Bonjour,
          " Je n'y arrive pas " veux dire qu'il y a une erreur ??
          0
        2. non pas de message d'erreur, la fonction PHP n'est pas éxécutée

          tout est bon dans mon script sauf la ligne
          else if(texte = file('checkpseudo?pseudo='+escape(pseudo)))


          car je ne sais pas comment appeler la fonction checkpseudo
          0
        3. Comment veux tu appeller la fonction checkpseudo dans checkpseudo ?????
          0
        4. dans ma fonction javascript je dois appeler la fonction php à un moment, comme dans ce tutorial: http://www.editeurjavascript.com/trucs/35,ajax_interrogez_votre_serveur_avec_javascript.php

          il l'effectue à la ligne:
          else if(texte = file('http://www.editeurjavascript.com/scripts/exemples/verifpseudo.php?pseudo='+escape(pseudo)))

          je souhaiterai faire la même chose mais au lieu mettre http://www.editeurjavascript.com/scripts/exemples/verifpseudo.php? je souhaiterais mettre ma fonction php checkpseudo (qui n'a rien avoir avec check_pseudo javascript)

          pour infos voici checkpseudo():
          function checkpseudo() {

          connectMySQL();

          $sql = 'SELECT count(*) FROM table WHERE pseudo="'.$_GET['pseudo'].'"';
          $result = mysql_query ($sql);
          if(mysql_num_rows($result)>=1)
          echo "1";
          else
          echo "2";
          @mysql_close($mysql_db);
          }
          0