Problème de verif javascript

Résolu
Bonjour,
je veu tester un champ input pour savoir si un pseudo est dispo en utilisant un peu de Jquery

en simplifiant voila ma fonction ajax qui appelle la vérif du pseudo.
(un tableau json contenant "libre"=>"oui" doit etre renvoyé par la page php)
function ajaxPseudo(pseudo)
{
	$.ajax({
		type: "POST",
		url: "ajax.php",
		data: "pseudo="+pseudo+"&action=verifPseudo",
		dataType : "json",
		success: function(retour){
			return retour.libre;
			}
	});	
}


ensuite je voudrais avoir la valeur retournée dans une div

$("#divpseudo div#info").text(ajaxPseudo(valeur));


mais rien ne se passe la valeur n'est pas renvoyée

13 réponses

  1. Salut.
    Sur Firefox, utilise Firebug pour voir les requêtes envoyées et les réponses reçues.
    Si tu as Chrome, tu peux utiliser l'outil intégré (Ctrl+Maj+J).
    0
    1. Le "return" utilisé dans le callback de success n'est pas le "return" de "ajaxPseudo".

      La correction la plus simple est de modifier "success":
      [...]
      success: function(retour){
      $("#divpseudo div#info").text(retour.libre);
      }
      [...]
      0
      1. merci F16 j'utilise déja ctrl alt J/I mais ca ne donne pas d'infos sur mon problème
        en fait vu qu'il n'y a pas vraiment d'erreur donc rien dans la console c'est juste que ca peut pas marcher comme ca...

        et merci anonymous par contre je voudrais vraiment juste recevoir la valeur de retour et je ne sais pas comment m'y prendre mais il doit bien y avoir une solution... :)
        0
        1. J'avais donné une autre réponse mais apparemment, elle a été effacée (et pourtant, je ne spamme pas ...).

          Tu ne peux pas faire de retour.
          Soit tu utilises une fonction de callback, soit tu modifies la valeur du div directement dans la fonction anonyme.
          0
          1. et personellement comment tu ferais toi ? :)
            (si tu voulais que cette fonction ne te renvoie que oui ou non)
            0
            1. Pour une seule ligne de code, je la mettrai dans la fonction anonyme (success).
              0
              1. voila le soucis aussi pour etre franc c'est que je ne saurais jamais retourner
                une valeur en appelant une fonction si je vais toujours a la simplicité.

                pourrai tu me griffoner un petit exemple avec le callback ? :)
                merci
                0
                1. C'est simple :
                  function ajaxPseudo(callback) {
                      $.ajax({
                          ...
                          success: function(result) {
                              callback(result);
                          }
                      });
                  }
                  
                  function afficherStatutPseudo(statut) {
                      $("div#id").html(statut);
                  }
                  
                  ajaxPseudo(afficherStatutPseudo);
                  0
                  1. ah oué c'est ce que je pensais je croyais ne pas connaitre cette manière
                    mais si je connais mais ca me renvoie pas de valeur tout ca :)

                    moi je voudrais trouver le moyen de me renvoyer le résultat a l'appel de la fonction

                    apparement on doit pas pouvoir :'(
                    0
                    1. On ne peut pas.
                      Le return se trouve dans un dictionnaire ( {param: value, param2, value, ... } ), qui est un paramètre à la méthode ajax de l'objet jQuery (~ $)

                      $.ajax retourne un objet XmlHttpRequest
                      0
                      1. oula on s'echappe du sujet la non ?
                        bref on peut pas retourner de valeur directement, c'est pas grave avec un callback ca ira très bien quand meme..
                        0
                        1. Non, on ne s'éloigne pas.
                          J'expliquais juste pourquoi on ne peut pas faire un retour : parce que « { ... } » est un dictionnaire (comme les crochets pour les tableaux), c'est un paramètre de $.ajax. Un paramètre peut-être de n'importe quel type : booléen, chaine, entier, décimal, array, dictionnaire, null, etc.
                          0
                          1. ok merci du détail
                            alors ca fait pas de mal :)
                            0