Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/09/2008, 10h48   #1
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
Par défaut declencher correctement ma demande

Bonjour,

Actuellement j'ai un formulaire où l'utilisateur saisie une info dans un champ type text et en fonction de ce qu'il met, ça me rempli une liste de selection en dessous.

Je déclenche mon script grâce à un évènement onkeyup placé sur le input type text.

Le problème est que si l'utilisateur saisie "ab" par exemple, ça va déclencher un traitement pour la valeur du champ input "a", et ensuite en même temps un second traitement pour la valeur "ab". Du coup, ça me retourne dans la liste de sélection les résultats des deux traitement alors que je ne voudrai que celui du dernier.

Comment peut-on faire cela ?

merci
pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2008, 13h37   #2
Membre chevronné
 
Avatar de ryan
 
Inscription : juin 2003
Messages : 766
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 766
Points : 760
Points : 760
Yop!

La solution est peut-être de travailler de façon synchrone.
ryan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2008, 16h51   #3
Rédacteur
 
Avatar de darrylsite
 
Inscription : juillet 2007
Messages : 1 287
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 1 287
Points : 1 756
Points : 1 756
je proposerai plutot que tu appelle ajax le champ de saisie perd le focus.
darrylsite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 08h04   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 828
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 828
Points : 35 998
Points : 35 998
Inhibe l'envoi si la valeur du champ est d'une longueur de 1.
Sinon, utilises aussi un settimeout pour pouvoir empêcher l'envoi de la requête lors de la saisie des premiers caractères. En gros, tant que l'utilisateur utilises le clavier en continu, on ne fait rien, dès qu'il y a inactivité, on lance la requête.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 16h39   #5
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
Merci pour vos réponses.

Pour l'instant, je me suis mis en mode synchrone mais va falloir que je regarde ta solution bovino.

Mais je me demande ce qui se passera si je met un settimeout de 2s et que l'utilisateur attend 2.1s pour saisir a nouveau, est ce que le problème ne reste pas le même ?

A voir les avantages et inconvénient de chaque méthode. N'étant pas trés doué en ajax, il va d'abord falloir que je regarde exactement ce que fait le mode synchrone pour comprendre les fonctionnements différents.

encore merci
pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 17h00   #6
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 828
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 828
Points : 35 998
Points : 35 998
Citation:
Du coup, ça me retourne dans la liste de sélection les résultats des deux traitement alors que je ne voudrai que celui du dernier.
Logiquement, tu devrais effacer le précédent résultat avant d'en afficher un autre...
Sinon, oui il est sûr qu'il y aura toujours un moment de décalage... on ne peut pas y faire grand chose, c'est une des raisons pour lesquelles on met généralement un spinner pour indiquer que quelque chose se passe...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h29.


 
 
 
 
Partenaires

Hébergement Web