Problème de verif javascript

Résolu/Fermé
rudak Messages postés 587 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 4 juin 2011 - 2 oct. 2010 à 13:15
rudak Messages postés 587 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 4 juin 2011 - 2 oct. 2010 à 23:38
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

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
2 oct. 2010 à 16:23
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
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
rudak Messages postés 587 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 4 juin 2011 46
2 oct. 2010 à 17:33
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
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
2 oct. 2010 à 18:53
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rudak Messages postés 587 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 4 juin 2011 46
2 oct. 2010 à 19:52
et personellement comment tu ferais toi ? :)
(si tu voulais que cette fonction ne te renvoie que oui ou non)
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
2 oct. 2010 à 21:22
Pour une seule ligne de code, je la mettrai dans la fonction anonyme (success).
0
rudak Messages postés 587 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 4 juin 2011 46
2 oct. 2010 à 21:34
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
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
2 oct. 2010 à 21:46
C'est simple :
function ajaxPseudo(callback) {
    $.ajax({
        ...
        success: function(result) {
            callback(result);
        }
    });
}

function afficherStatutPseudo(statut) {
    $("div#id").html(statut);
}

ajaxPseudo(afficherStatutPseudo);
0
rudak Messages postés 587 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 4 juin 2011 46
2 oct. 2010 à 22:01
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
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
2 oct. 2010 à 22:23
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
rudak Messages postés 587 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 4 juin 2011 46
2 oct. 2010 à 23:02
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
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 499
2 oct. 2010 à 23:22
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
rudak Messages postés 587 Date d'inscription samedi 7 juin 2008 Statut Membre Dernière intervention 4 juin 2011 46
2 oct. 2010 à 23:38
ok merci du détail
alors ca fait pas de mal :)
0