|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 684 ![]() |
Bonjour
Avant tout je tiens à préciser que j'ai voulu faire la recherche sur le forum si ce post existait déjà mais la recherche a bugué x). Bref. Dans un champ de type text, j'ai soit une chaine de type "aaaa" soit un mail. Quand l'utilisateur tape quelque chose dans ce champ, j'aimerai faire un contrôle instantané pour savoir si ce qui est tapé existe déja dans la base ou pas. S'il n'existe pas : on affiche "disponible", sinon on affiche "pris" dans le div sous ce champ. Voici mon code (je n'ai pas mis le html) : Code :
Code :
Donc je ne vois pas ce qui manque/est mal écrit ... Si vous pouviez m'aider =) |
||||
|
|
00
|
|
|
#2 | ||
![]() ![]() Inscription : janvier 2006 Messages : 1 107 ![]() |
Ya deux choses qui ne vont pas, et elles sont au même endroit, sur ton onreadystatechange ^^
La première: http.onreadystatechange attend une fonction en paramètre. En général on ecrit la fonction juste apres mais on peut également la passer en argument. Le problème dans ta façon de faire, c'est qu'en écrivant http.onreadystatechange = handleHttpResponseTer(dest), tu ne lui files pas une fonction mais le retour de l'exécution de ta fonction. Si tu mets les parenthèses, lui il exécute, donc tu ne retournes pas de fonction. Pour suivre ta façon de faire, il aurait fallu écrire http.onreadystatechange = handleHttpResponseTer. Mais ca nous conduit au 2e problème. Le callback n'attend pas de paramètre, donc quand ton objet xhr exécute son callback, il ne passe pas de paramètre. Donc forcément, ton traitement ne va pas marcher. La solution pour résoudre ton problème: faire une closure sur ton callback pour lui faire retourner une fonction qui aura dans son scope les paramètres que tu veux lui passer: Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 684 ![]() |
Merci pour ta réponse !
Par contre je ne suis pas sûre d'avoir bien compris : si je mets ce que tu as dit dans mon "http.onreadystatechange", le traitement que je voulais exécuter correspond à ce que j'avais mis dans ma fonction "function handleHttpResponseTer" ? En fait j'ai testé donc en faisant comme ça, mais dans les alert, j'ai des undefined qui apparaissent et ensuite dans mon div j'ai toujours érit : "cette destination est déjà prise". |
|
|
00
|
|
|
#4 | ||||
![]() ![]() Inscription : janvier 2006 Messages : 1 107 ![]() |
Citation:
Citation:
Code :
|
||||
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 684 ![]() |
J'ai fait la modification, comme résultat j'ai ce que j'ai tapé qui s'affiche dans le alert() mais 5 fois o_O. Une fois que j'ai cliqué sur les 5 'Ok' de mes alert, il me dit toujours que la destination est libre. Pourtant, la requête n'a pas l'air fausse :/
|
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : janvier 2007 Messages : 9 316 ![]() |
Bonjour,Ben si : il manque pas des caractères génériques, là pour un LIKE :?
A+ |
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 684 ![]() |
J'ai changé le LIKE en = car en fait oui je n'en avais pas besoin.
Ce qui me donne : Code :
$SQLdest = "SELECT destination FROM emails WHERE source = '$ref'"; |
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : janvier 2007 Messages : 9 316 ![]() |
Ton Javascript va récupérer du caractère et non du numérique ...
A+ |
|
|
00
|
|
|
#9 |
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 684 ![]() |
Même avec les ", ça n'a rien changé du tout.
|
|
|
00
|
|
|
#10 |
![]() ![]() Inscription : janvier 2007 Messages : 9 316 ![]() |
Tu as vérifié que la valeur récupérée sur le serveur correspondait exactement (cf. ton escape() ) ?
Elle vient d'où cette variable "dest" ? A+ |
|
|
00
|
|
|
#11 | ||
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 684 ![]() |
Ma variable dest vient de ce que l'on tape dans le div :
Code :
var dest = document.getElementById('desti').value; [EDIt] J'ai peut-être trouvé mon problème : dans ma requête, le $ref est un $_REQUEST. Si je le récupère bien dans ma requête, il faut que j'arrive à récupérer cette valeur là dans le Ajax non ? Ou simplement le fait d'exécuter cette requête suffira ? Code :
|
||
|
|
00
|
|
|
#12 | ||||
![]() ![]() Inscription : janvier 2007 Messages : 9 316 ![]() |
Dans un div, ça m'étonnerait
![]() Citation:
Si elle ne trouve pas la valeur, c'est qu'il n'y a pas de correspondance avec la valeur que tu lui passes. Je peux pas vérifier : c'est toi qui as les clés Citation:
A+ |
||||
|
|
00
|
|
|
#13 | |
![]() ![]() Inscription : janvier 2006 Messages : 1 107 ![]() |
Citation:
Tu fais bien des echos de ton résultat dans ton php? |
|
|
|
00
|
|
|
#14 | ||||
![]() ![]() Inscription : janvier 2006 Messages : 1 107 ![]() |
Code :
Code :
|
||||
|
|
00
|
|
|
#15 |
![]() ![]() Inscription : janvier 2007 Messages : 9 316 ![]() |
|
|
|
00
|
|
|
#16 | |
![]() ![]() Inscription : janvier 2006 Messages : 1 107 ![]() |
Citation:
|
|
|
|
00
|
|
|
#17 | ||||
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 684 ![]() |
Euh ouai non pas dans mon div x)
Bon je récapitule parce que là j'ai rien dit de compréhensible. Dans mon champ input de type text (et non un div ) je tape une destination :Code :
<input type='text' name='destination' id='desti' onKeyUp="verifDest();"> Code :
Code :
|
||||
|
|
00
|
|
|
#18 |
|
Membre confirmé
![]() Inscription : octobre 2007 Messages : 684 ![]() |
Désolée pour le double post mais je viens de résoudre mon problème.
Mauvais champ dans la clause du WHERE dans ma requête ... ![]() Merci beaucoup à vous deux pour l'aide en tout cas !! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com