|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre à l'essai
![]() Inscription : mai 2004 Messages : 192 ![]() |
Bonjour,
Pour un panier, j'ai un formulaire avec des input text afin de saisir les quantités. Code :
Certains utilisateurs voudraient que la mise à jour soit automatique quand ils ont saisi la quantité. Je ne suis pas sûr que ce soit une bonne idée, mais étant nul en javascript je ne sais pas comment faire. Quel événement détecter ? Petite phrase magique ? Merci d'avance. |
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2011 Messages : 2 930 ![]() |
Bonjour,
sur l'événement onchange de l'input tu appelles la fonction de mise à jour. |
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : mai 2004 Messages : 192 ![]() |
Bonjour,
Merci de ta réponse. Je suis nul en javascript mais j'ai l'impression que ton truc ne vas pas. Par défaut, la valeur est 1. Si l'utilisateur veut taper 100, onchange ne va-t-il pas s'appliquer dès 10 ? Je n'ai pas de script à appeler. Il faut juste faire comme si le bouton "Recalculer" avait été cliqué, sachant qu'il existe un autre bouton "Valider" sur le même formulaire. |
|
|
00
|
|
|
#4 | |
![]() ![]() Inscription : janvier 2011 Messages : 2 930 ![]() |
Citation:
Ton bouton Recalcul à bien une action sur son événement onclick du style onclick="Recalcul();", c'est cela qu'il faut mettre sur l'événement onchange de ton input. |
|
|
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Inscription : mai 2004 Messages : 192 ![]() |
Re-bonjour,
Il n'y a aucun code javascript dans le bouton "Recalculer". C'est un formulaire html qui envoie à un script PHP. |
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : juillet 2007 Messages : 310 ![]() |
En utilisant l'ajax....
Par ex, sur l'évènement onblur de ton champ input text.. Tu appel une méthode javascript qui lui fait un traitement ajax... Actuellement je suis sur un projet où j'ai développé une IHM avec une gestion de colis contenant des articles. Donc j'avais des boutons "ajouter" et "retirer" qui chacun faisait appel à des méthodes ajax. Donc là pour ton cas, tu peux à mon avis, utiliser l'évènement onblur, c'est à dire qu'à chaque fois que l'utilisateur sort du champ, donc forcement quand il va cliquer...tu fais appel à une méthode ajax qui met à jour ton panier... |
|
|
00
|
|
|
#7 | |
|
Membre à l'essai
![]() Inscription : mai 2004 Messages : 192 ![]() |
Merci de ta réponse :
Citation:
Dans mon esprit, une petite phrase magique javascript devrait suffire. Si onblur, on fait comme si le bouton "Recalculer" avait été cliqué. |
|
|
|
00
|
|
|
#8 | ||||
|
Membre du Club
![]() Inscription : juillet 2007 Messages : 310 ![]() |
ok.
Si j'ai bien compris, ton bouton recalculer, envoi le formulaire html et fais les traitements en php. Si c'est bien ça. Il te suffit d'écrire ça en javascript : Code :
Mais le principe est là, dans ta fonction javascript qui sera appelé dans l'evenemetn onblur, tu met ce bout de code qui va envoyer le formulaire. Car j'imagine que ton bouton recalculer c'est un simple : Code :
|
||||
|
|
00
|
|
|
#9 |
|
Membre à l'essai
![]() Inscription : mai 2004 Messages : 192 ![]() |
Bonjour,
Merci de ta réponse Effectivement, le bouton submit est bien comme tu dis. Par contre, il y a plusieurs form dans la page et la soumission par onblur doit s'appliquer uniquement aux input type="text" d'un seul formulaire. |
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() Inscription : juillet 2007 Messages : 310 ![]() |
ok.
donc tu dois récupérer le nom de ton formulaire et faire dans la méthode javascript : Il faut bien mettre le nom de ton formulaire si tu en a plusieurs |
|
|
00
|
|
|
#11 |
|
Membre à l'essai
![]() Inscription : mai 2004 Messages : 192 ![]() |
Merci de ta réponse,
formSaisie est le nom du formulaire ? Il me suffit d'ajouter dans le code html des input type="text" concernés onblur="document.formSaisie.submit()" C'est aussi simple que de déclarer une fonction, non ? |
|
|
00
|
|
|
#12 |
|
Membre du Club
![]() Inscription : juillet 2007 Messages : 310 ![]() |
oui c le nom du formulaire.
tu met tes input à l'intérieur de ton formulaire. puis pour chaque input, tu appel ta méthode javascript sur la méthode onblur. et ça devrait faire l'affaire. |
|
|
00
|
|
|
#13 | |
![]() ![]() Inscription : janvier 2011 Messages : 2 930 ![]() |
Citation:
|
|
|
|
00
|
|
|
#14 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 802 ![]() |
Une autre question à se poser est : as-tu vraiment besoin d'un aller-retour vers le serveur pour effectuer un simple calcul ? JavaScript peut le faire facilement...
__________________
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 JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#15 | ||
|
Membre à l'essai
![]() Inscription : mai 2004 Messages : 192 ![]() |
Merci de vos réponses.
Citation:
Il y a le bouton "Recalculer" qui met à jour les valeurs en restant sur la même page et le bouton "Valider" qui met aussi à jour les valeurs mais en passant à l'étape suivante. onblur doit activer le boutons "Recalculer" et donc la petite phrse à laquelle j'avais pensé n'est pas suffisante. onblur="document.formSaisie.submit()" Il faut préciser que le submit s'opère avec le bouton "Recalculer". Citation:
Il faut donc que toute modification du formulaire soit enregistrée au niveau serveur, c'est d'ailleurs très rapide. |
||
|
|
00
|
|
|
#16 | |||
![]() ![]() Inscription : janvier 2011 Messages : 2 930 ![]() |
Citation:
petit fichier de test pour te rendre compte Code :
quoi qu'il arrive, si la fonction attachée aux 2 boutons est la même, elle est traitée différemment côté serveur, oui mais comment dans ce cas. Mais la pas sûr d'avoir bien saisi... |
|||
|
|
00
|
|
|
#17 |
|
Membre à l'essai
![]() Inscription : mai 2004 Messages : 192 ![]() |
Bonsoir,
Merci de ton test. En fait, je ne vois pas la différence entre onchange et onblur. Dans les deux cas, tu es obligé de sortir de l'input et de cliquer sur la page pour provoquer l'événement, ce qui n'est pas un comportement naturel, autant obliger à cliquer sur recalculer. Autrement, pour te rendre compte, il s'agit du site touslescables.com. http://www.touslescables.com/ Ajoute un ou mieux plusieurs produits au panier pour voir la page "Touslescables.com : Validation quantités". Autrement, ce sont quelques utilisateurs qui suggèrent la mise à jour automatique car ils ont vu ça ailleurs, mais dans des sites où l'ergonomie d'achat est différente. Je ne suis pas sûr que ce soit une bonne idée pour l'ergonomie de touslescables.com mais je réfléchis au problème (avec votre aide). L'avantage d'une mise à jour non-automatique et que tu peiux d'abord constituer ton panier, pusi préciser les qiuantités, puis valider en une seule fois. |
|
|
00
|
|
|
#18 | ||
![]() ![]() Inscription : janvier 2011 Messages : 2 930 ![]() |
Citation:
- onblur est déclenché à chaque fois que l'élément perd le focus donc si l'on se déplace par tabulation il peut y avoir des échanges inutiles, ce n'est pas le cas, dans ton cas puisque le déplacement par tabulation n'est pas prévu. Concernant le lien fourni, effectivement il y a soumission dans les deux cas avec coté serveur récupération de la value du name="choix", donc sauf à mettre une simulation de click, pas sûr que cela soit encore autorisé, un document.form.submit() est insuffisant. Le faire en javascript embarqué n'est pas non plus réalisable rapidement il te manque une donnée à savoir le prix unitaire. cela nécessite un peu plus qu'un correctif. Citation:
Ils ne savaient pas que c'était impossible, alors ils l'ont fait. Mark Twain. Merci les papillotes... |
||
|
|
00
|
|
|
#19 |
|
Membre à l'essai
![]() Inscription : mai 2004 Messages : 192 ![]() |
Merci beaucoup de tes commentaires.
Je continue à réfléchir... |
|
|
00
|
|
|
#20 |
![]() ![]() Inscription : janvier 2011 Messages : 2 930 ![]() |
as tu essayé ceci, donc sauf à mettre une simulation de click?
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com