begin process at 2010 03 15 18:50:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

Vérification de doublons


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Vérification de doublons

dimanche 21 octobre 2007 à 22:56:30 | Vérification de doublons

eddie5150

Bonjour à tous,

je viens de me lancer dans AJAX, mais je ne comprends pas encore tout très bien,
aussi j'ai essayé d'effectuer une vérification automatique de mail dans un formulaire, jusque là, c'est du Javascript, tout va bien, cependant, il me faudrait également vérifier si ce mail n'est pas déjà présent dans ma BDD.

Voila comment je procede :

function verif_mail()
{
    //Différentes vérifications ....
   
    if(!verifDoublon(mail))
       alert("Doublon");
}

function verifDoublon(mail)
{
    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...");  
    }   
       
    xhr_object.onreadystatechange = function()
    {  
       if(xhr_object.readyState == 4) 
       {
           if(xhr_object.status  == 200)
              if(xhr_object.responseText == '0')
                  return true;
              else
                  return false;
           else
                alert("Erreur: "+xhr_object.status);
        }
    }  
      
    xhr_object.open("POST", "requete.php", false);
    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");     xhr_object.send("mail="+mail);
}

requete.php
if(isset($_POST["mail"]))
{
    $mysql_db = @mysql_connect("localhost", "root", "");  
    @mysql_select_db("pronosite_01");  
   
    $query  = "SELECT `email_util` FROM `utilisateur` WHERE `email_util` LIKE '".$_POST["mail"]."'";
    $result = @mysql_query($query);  
   
    echo mysql_num_rows($result);
   
    @mysql_close($mysql_db);  
}

Voila, ca ne marche pas, j'ai comme l'impression que mes return true ou false ne sont jamais appelés... Quelqu'un pourrait-il m'éclairer ?

Merci d'avance
lundi 22 octobre 2007 à 13:20:28 | Re : Vérification de doublons

AlexN

Tu utilises l'objet xmlhttprequest en mode synchrone :
xhr_object.open("POST", "requete.php", false);
La fonction de callback (onreadystatechange ) n'a pas d'utilité dans ce cas.
Il suffit de mettre le code de traitement de la réponse juste après le send()

xhr_object.send("mail="+mail); // L'éxécution du code est bloquée jusqu'au retour de la réponse (mode synchrone)
       if(xhr_object.readyState == 4) 
       {
           if(xhr_object.status  == 200)
              if(xhr_object.responseText == '0')
                  return true;
              else
                  return false;
           else
                alert("Erreur: "+xhr_object.status);
        }
return false;

lundi 22 octobre 2007 à 13:38:59 | Re : Vérification de doublons

eddie5150

Merci pour la réponse !

Désolé mais j'ai fait une erreur en coiant mon code !! Je voulais plutot le faire en mode asynchrone : xhr_object.open("POST", "requete.php", true);

En tout cas ta propostition marche tres bien, cependant, pour exécuter en mode asynchrone, quelle serait la technique ?
lundi 22 octobre 2007 à 15:50:33 | Re : Vérification de doublons

AlexN

Réponse acceptée !
En mode asynchrone, l'execution du code de gestion du retour est différée.

Tu ne peux pas faire :

    if(!verifDoublon(mail))
       alert("Doublon");


Parce que l'execution retourne immédiatement après le send(). et dans ton cas la fonction ne retourne rien.
Deux solutions :
- lancer le verifDoublon et gérer la reponse dans le callback
- mettre en place un mécanisme de timeout sur la requete (une sorte de sleep) avant de decider de traiter la réponse.

Pour faire simple, si tu n'a pas besoin de mécanisme asynchrone, ne les utilises pas.
lundi 22 octobre 2007 à 17:37:24 | Re : Vérification de doublons

eddie5150

Ok,

merci pour ces précisions, je vais le faire en mode synchrone alors !


Cette discussion est classée dans : mail, mysql, xhr, object, if


Répondre à ce message

Sujets en rapport avec ce message

pb XMLHTTPRequest [ par LaTatadu91 ] Bonjour a tous, voila je cherche a changer les valeurs de plusieurs input situés ds un tableau sans recharger la page sur un onchange de balise : ap XMLHttpRequest probleme [ par hlimaiem ] Limaiem heykelBonjour, j'ai un page php qui contient un tableau remplis depuis une base de donnees. Ma base et rempli a partir d'un programme en java settimeout [ par nicomilville ] pouvez vous me dire ou est l'erreur dans ce code svp, il semblerait que l'erreur soit a la ligne rouge :    setTimeout(actualisation(), 10);  function Envoi de donnée [ par coolboy78 ] Bonjour,je debute en ajax, j'aimerai, lorsque mon utilisateur quitte ma page, faire un update dans ma base.Comment faire ?j'ai débuté avec ca :functio XMLHttpRequest [ par softghost ] bonjour tous le monde;j'utilise xmlhttprequest pour l'envoi de requet entre les page en restand sur index avec un il marche tres bien, a mon cas j'ape Encore des erreurs ! [ par nicomilville ] Salut,Et oui, c'est encore moi, vous devez vous dire que je suis un nul, c'est peut être vrai, lol J'ai encore des erreurs sur mon code... Si ça co asynchrone [ par nicomilville ] voici mon code :var xhr_object = null;if(window.XMLHttpRequest)xhr_object = new XMLHttpRequest();else if(window.ActiveXobject)xhr_object = new ActiveX encore une fonction qui marche pas ! [ par nicomilville ] Salut,J'ai encore un problème avec une fonction qui ne marche pas !ma fonction :function aff_discution() { var xhr_object = null;  if(window.XMLHttpRe intérompre une fonction... [ par davidcian ] Bonjour,Je cherche a stopper le déroulement d'une fonction lors d'une condition, j'ai testé avec return mais ça marche pas...Fonction principal:functi créer des lien en ajax [ par baloc ] bonjour à tous.Je souhaite réaliser des liens en ajax. ça c'est la partie simple théorique. maisntenant l'autre partie. les liens sont des éléments d'


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales