Partage
  • Partager sur Facebook
  • Partager sur Twitter

AJAX et la verification d'un champ

ou comprendre ce que XHR renvoie...

    9 janvier 2009 à 18:47:13

    Bonjour a tous,

    Tout d'abord je vous prie de m'excuser pour ce texte sans accents mais je suis sur un clavier qwerty!
    Je viens de me mettre a AJAX puisque j'aimerais bien pouvoir verifier un champ sans voir a recharger toute ma page.

    Le probleme est le suivant: j'ai un formulaire et au moment d'appuyer sur 'Submit' j'aimerais pouvoir verifier si l'un des champs existe deja ou non dans ma base MySQL et si ce n'est pas le cas, empecher la validation.
    Je sais faire ca en Javascript tout bete avec une syntaxe a la " onclick='return fonction_check(this)' " sur le champ qui va bien. Or ici, au moment du check il faudra aller verifier tout ca dans la BDD.
    AJAX s'impose donc et c'est la que j'ai un probleme.

    Le programme agit comme suit:

    En cliquant sur le bouton 'Submit', on appel une fonction Javascript qui verifie different parametres sur le formulaire. Quand elle arrive au niveau du champ qui m'interesse, elle appelle une seconde fonction check_name(class_name), class_name etant la valeur du champ entree par l'utilisateur:

    function check_name(class_name)
    {
            xhr = GetXmlHttpObject();
    	if (xhr == null){
            	alert ("Browser does not support HTTP Request");
    		return;
    	}
    	
            var url = "check_name.php";
    	url = url + "&class_name=" + class_name;
    		
    	xhr.onreadystatechange = function(){
    		if (xhr.readyState==4 || xhr.readyState=="complete"){
                    	
    			res = xhr.responseXML;
    			value = res.getElementsByTagName("result")[0].getAttribute("value");
    			alert(value);
    			return value;
    		}
    		};
    	xhr.open("GET", url, true);
    	xhr.send(null);
    	
    }
    


    Le probleme que j'ai c'est que je n'arrive pas a faire renvoyer par check_name un boolean (value est un boolean), il me renvoit la responseXML puisque si je fais un alert(check_name(class_name)) il me repond que c'est un objet XMLDocument. ([object XMLDocument])

    Je m'y prend sans doute affreusement mal mais si quelqu'un a deja realise un check de valeur en AJAX et qu'il pourrait m'expliquer comment il a fait, ca serait super cool!

    • Partager sur Facebook
    • Partager sur Twitter
      9 janvier 2009 à 20:15:09

      utilise la propriété xhr.responseText pour obtenir la chaine retourné par le fichier php et non pas un objet xml.

      Par contre regarde la création de ton objet httprequest parce que ta méthode est pas compatible avec tous les navigateurs...
      • Partager sur Facebook
      • Partager sur Twitter
        9 janvier 2009 à 21:06:35

        Quesque tu appelle un check ?

        Sinon, de ce que j'ai compris, tu n'as qu'à faire une page avec ta requête qui écrit true ou false selon que le champ existe ou pas.
        Puis comparais le contenu avec xhr.responseText.
        Si il est égale à "true", le champ existe, si "false" , non.
        • Partager sur Facebook
        • Partager sur Twitter

        AJAX et la verification d'un champ

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown