Envoi des donnees

Petit nouveau ! | 5 Messages

09 nov. 2006, 10:42

bonjour :oops: naïvement , j'aimerais savoir s'il est selon vous possible d'ecrire une fonction permettant d'envoyer automatiquement les informations contenues dans un champs a partir du moment ou ce champs est rempli (sans avoir a cliquer sur un bouton submit).merci beaucoup pour vos reponses.

Eléphant du PHP | 134 Messages

09 nov. 2006, 11:02

sans doute que oui mais pas en php

j'opterais plutôt en javascript

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

09 nov. 2006, 12:34

Tout ce qui se passe côté client / navigateur relève du javascript (php ne peut s'exécuter que côté serveur)

Quant à ce que tu veux faire, il te suffit de choisir l'événement qui te convient (onChange, onBlur, onClick, ...) et d'utiliser la fonction submit() d'un formulaire pour l'envoyer (document.monFormulaire.submit())

Nota : cette façon de faire (via javascript) ne déclenche pas l'événement onSubmit du formulaire.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 5 Messages

09 nov. 2006, 15:13

Ok merci de vos reponses c'est tres sympa!

quand a l'envoi des donnees saisies je compte sur un script envoyant ces donnees au bout d'une seconde(ou moins) a partir du moment ou elles sont saisies !
ca ressemble a une usine a gaz "mon idée"? :D :D
je veux utiliser une douchette codebarre pour la saisie ! que ces donnees saisies soient" interpretées" puis rangées dans une base de données!



ah si j'etais "programmeur" ...... :? :?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

09 nov. 2006, 16:27

Ben le soucis selon moi c'est de savoir quand est ce que l'utilisateur a fini de saisir ses données... Si tu n'as qu'un seul champ, on peut se baser sur la perte du focus de celui-ci, voire sur la longueur du texte saisi, mais s'il y en a plusieurs c'est pas jouable...

C'est pour ça qu'en général il vaut mieux éviter de déclencher des submit() autrement que par l'aval de l'utilisateur à travers une action explicite...

Maintenant si tu arrives avec ton lecteur code barre à écire dans un champ de formulaire d'un navigateur, à mon avis, soumettre le formulaire à la volée dans le script qui écrit dans le champ doit pas être bien sorcier
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 5 Messages

09 nov. 2006, 19:57

Ben le soucis selon moi c'est de savoir quand est ce que l'utilisateur a fini de saisir ses données... Si tu n'as qu'un seul champ, on peut se baser sur la perte du focus de celui-ci, voire sur la longueur du texte saisi, mais s'il y en a plusieurs c'est pas jouable...
En fait je suppose la lecture du code barre [monsieur pierre]"interpretation"[tensionarterielle_15_8]"interpretation"notament avec la fonction explode(suggerer gentiment sur ce forum)et ecriture de la tension arterielle sur la base de donnée en sql
c'est peut etre idiot(sans doute ) mais la fin de saisie ne s'arrete pas! mon idée est de clore l'integration ("l'envoi")des données d'un patient lorsque le code barre d'un autre patient est saisie !
C'est pour ça qu'en général il vaut mieux éviter de déclencher des submit() autrement que par l'aval de l'utilisateur à travers une action explicite...

Maintenant si tu arrives avec ton lecteur code barre à écire dans un champ de formulaire d'un navigateur, à mon avis, soumettre le formulaire à la volée dans le script qui écrit dans le champ doit pas être bien sorcier
en fait a partir du moment ou j'ai le focus sur le champ ca devrait fonctionner ??je suis d'un naturel optimiste !:D
enfin si j'y arrive c'est cool mais j'ai du boulot !! [/quote]merci pour votre aide si ca vous semble absurde merci de me le faire savoir ! :D :D
auquel cas il faudrait que je me mette a "un autre language"si vous pensez a un en particulier merci de m'aiguiller.parcequ'en fait ce ne sont pas les idées qui me manquent mais de pouvoir les appliquer !

Eléphant du PHP | 197 Messages

09 nov. 2006, 20:08

bonjour :oops: naïvement , j'aimerais savoir s'il est selon vous possible d'ecrire une fonction permettant d'envoyer automatiquement les informations contenues dans un champs a partir du moment ou ce champs est rempli (sans avoir a cliquer sur un bouton submit).merci beaucoup pour vos reponses.
utilise de l'ajax
je vois un probleme... des que tu vas tapper une lettre ça sera envoyé :s comment vas-tu définir "je dois envoyer les données maintenant" ?

Petit nouveau ! | 5 Messages

09 nov. 2006, 20:52

bonjour :oops: naïvement , j'aimerais savoir s'il est selon vous possible d'ecrire une fonction permettant d'envoyer automatiquement les informations contenues dans un champs a partir du moment ou ce champs est rempli (sans avoir a cliquer sur un bouton submit).merci beaucoup pour vos reponses.
utilise de l'ajax
je vois un probleme... des que tu vas tapper une lettre ça sera envoyé :s comment vas-tu définir "je dois envoyer les données maintenant" ?
en fait je pensais definir une fonction si vide pas d'envoi avec un envoi toutes les secondes ou moins ?

avec du javascript cela devrait etre possible?
temps 0 pas de donnees pas d'envoi
temps 1 données envoi envoi toutes les x secondes
si envoi partiel verification =>>gestion d'erreur "bip"rafraichissement du formulaire !??
:?:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

10 nov. 2006, 11:07

Ce que j'ai du mal à voir, c'est comment les données arrivent dans le champ.... tu as une interface avec ton lecteur qui te permet d'envoyer les infos directement dans le champ d'une page sur un navigateur ?

S'il n'y a qu'un seul champ sans saisie particulière (genre s'il suffit d'un ctrl+v pour l'alimenter, ou si c'est fait via ton lecteur) tu peux effectivement utiliser la fonction js setTimeout() pour définir un interval de temps pour vérifier le contenu de ton champ et l'envoyer s'il n'est plus vide (et s'il est vide, tu refais appel à setTimeout() pour recommencer dans x secondes :))

Ps : Ajax n'est pas un autre langage ni une autre solution, c'est du javascript. Que les données soient envoyées par le formulaire ou par js ne change rien au problème, même si ça peut être interessant de ne pas avoir à recharger la page :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 312 Messages

10 nov. 2006, 13:13

A mon avis avec onChange() ça devrait suffire vu que les données sont saisies dans leur intégralité avec le lecteur de code (et non pas caractère après caractère).
Par contre, dans le cas où le lecteur ne marche pas, l'utilisateur n'aura pas la possibilité d'entrer le code à la main (sauf par un copié/collé à la rigueur).

Cela dit j'ai un peu du mal à comprendre lorsque tu dis :
En fait je suppose la lecture du code barre [monsieur pierre]"interpretation"[tensionarterielle_15_8]"interpretation"notament avec la fonction explode(suggerer gentiment sur ce forum)et ecriture de la tension arterielle sur la base de donnée en sql
c'est peut etre idiot(sans doute ) mais la fin de saisie ne s'arrete pas! mon idée est de clore l'integration ("l'envoi")des données d'un patient lorsque le code barre d'un autre patient est saisie !
Toutes les informations du formulaire (nom du patient + tension artérielle) sont enregistrées en même temps grâce au lecteur de code barre ? ou l'utilisateur doit il entrer certaines informations à la main et en saisir d'autres via le lecteur de code barre (par exemple ça charge la fiche du patient avec son nom/prénom mais le formulaire attend que l'utilisateur tape la tension artérielle).

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

10 nov. 2006, 13:33

Le problème du onChange, c'est que sur un champ texte, il ne se déclenche qu'à la sortie du champ (perte du focus comme onBlur) et seulement si le contenu en a été modifié... mais avec un lecteur au lieu d'une saisie manuelle, y aura pas de sortie du champ pour déclencher l'événement...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 312 Messages

10 nov. 2006, 13:40

Ha oui, donc ça va pas ça...

Donc pour éviter de renvoyer en permanence les mêmes données à chaque cycle du timer, il faut sauver la dernière valeur envoyée et controler avant chaque envoi si ce qu'on va envoyer diffère de ce qu'on a envoyé précedemment.

Eléphant du PHP | 187 Messages

10 nov. 2006, 14:38

Salut,
Logiquement en PHP+JS ca devrait le faire : generalement (en tout cas c'est comme ca sur celui que j'ai), les lecteurs codes barres envoies un retour charriot en fin de ligne. Il suffit donc d'attendre ce caractère et de valider le formulaire a ce moment la (pour un traitement sans action de la part de l'utilisateur final).
/!\ Par contre, dans le acs ou l'utilisateur doit effectuer une action, bien penser a ne pas mettre de bouton submit A L'INTERIEUR du formulaire, sinon, lorsque tu vas lire le code barre, le formulaire sera automatiquement envoyé meme si l'utilisateur n'a pas saisi les donné qu'il souhaite...
Netsupra