Peux-t-on passer une valeur dynamiquement à un autre? - HTML/CSS - Programmation
Marsh Posté le 21-05-2005 à 10:02:09
C'est pas clair !
Tu as une question ou pas ?
Marsh Posté le 21-05-2005 à 17:46:55
oui
1. est-il possible d'allouer une valeur dynamiquement à un champ d'un formulaire.
soit une valeur d'un autre champ du même formulaire (par exemple allouer à un champ caché la valeur d'un autre champ que l'internaute aura rempli <input type=hidden id="monChamp" value="monChamp2.value"> )?
soit une valeur d'une variable : par exemple <input type="text" id="monChamp" value= document.getElementById("monResultat" ).innerHTML >
2. est-il possible d'envoyer par mail (via cgi)
des valeurs de variables introduites dans mon HTML comme ça <div id="monResultat"> Null </div> et calculées dans mes javascripts comme ça document.getElementById("monResultat" ).innerHTML?
Marsh Posté le 21-05-2005 à 17:48:46
En clair
y'a t'il moyen d'envoyer par mail
autre chose que des champs d'un formulaire?
Je voudrais envoyer des valeurs de variables.
Valeur qui sont calculées en javascript chez le client au moment où l'internaute rempli le formulaire?
pffff Merci!
Marsh Posté le 21-05-2005 à 18:07:30
Le mail envoyé est construit (et envoyé) depuis le serveur, donc tu envoies ce que tu veux
Et calculer des valeurs du côté du client sans les vérifier/recalculer côté serveur est extrèmement dangereux
Marsh Posté le 23-05-2005 à 12:26:04
1. et comment on envoie la valeur d'une variable?
dans body on écrit document.getElementById("monResultat" ).innerHTML ?
2. je veux prendre la valeur d'un champ rempli par l'internaute
la multiplier par une contante
la valeur resultat s'affichera dans une variable
et comment envoyer cette valeur de variable par eMail?
Marsh Posté le 23-05-2005 à 12:33:18
zoeweb a écrit : 2. je veux prendre la valeur d'un champ rempli par l'internaute |
Cela doit être fait côté serveur obligatoirement
Marsh Posté le 23-05-2005 à 12:38:42
zoeweb a écrit : 1. et comment on envoie la valeur d'une variable? |
La variable est dans un formulaire, tu envoie le formulaire
Citation : 2. je veux prendre la valeur d'un champ rempli par l'internaute |
1- La valeur est remplie dans un formulaire
2- Le formulaire est récupéré sur le serveur quand il est envoyé depuis le client
3- tu fais tes calculs côté serveur
4- tu crées et envoie le mail depuis le serveur
Marsh Posté le 23-05-2005 à 13:31:49
pas dans mon cas...
dans mon cas je fais les calculs coté client
en js
et ensuite j'envoie le formulaire par mail....
donc j'aimerai envoyer par mail
et le formulaire et le resultat de mes calculs....
la variable n'est pas dans le formulaire
mais introduit dans le html via la balise div id="maVariable".
Je veux envoyer par mail et mon formulaire
ET la valeur de maVariable...
or dans le cgi que j'emploie il n'envoie que les valeurs d'un formulaire....
donc
est-ce qu'on peut envoyer une valeur de variable (calculée cote client!!!) avec les valeurs d'un formulaire?
moi aussi je vais pleurer avec vos serveurs!
Thanks
J'emploie un cgi pour ça et non un mailto.
Marsh Posté le 23-05-2005 à 13:38:53
Arrêtez moi si je dis une bêtise mais .... un cgi c'est coté serveur non ?
Marsh Posté le 23-05-2005 à 13:40:39
zoeweb a écrit : pas dans mon cas... |
Sauf si t'es sur un Intranet, ou sur un site où tu est maître du navigateur du client, utiliser du JS pour ça est une grave erreur. Et si l'internaute n'a pas JS, tu fais comment ?
Marsh Posté le 23-05-2005 à 14:37:25
plainsofpain a écrit : Arrêtez moi si je dis une bêtise mais .... un cgi c'est coté serveur non ? |
oui
zoeweb a écrit : pas dans mon cas... |
Dans la mesure où il est impossible d'envoyer des mails directment depuis le navigateur (même en JS) tu es obligé de le générer et de l'envoyer côté serveur, donc rien ne t'empêche de faire les calculs côté serveur.
Surtout dans la mesure ou TOUT CALCUL JAVASCRIPT ET TOUTE DONNEE ENVOYEE PEUT ETRE FALSIFIEE EN QUELQUES SECONDES.
La règle numéro 1 du web, c'est qu'il faut vérifier toute donnée envoyée par le client, et que tout calcul sensible doit être effectué côté serveur.
À chaque fois qu'on peut le faire, le traitement doit s'effectuer côté serveur, le traitement chez le client ne doit s'effectuer qu'en dernier recours.
[quote]J'emploie un cgi pour ça et non un mailto.[/quotemsg]
Et à ton avis il s'exécute où le CGI?
Marsh Posté le 23-05-2005 à 14:53:19
Merci masklinn, c'est bien ce que je pensais, mais j'avais des doutes quand je vois ce qui embêtait zoeweb.
Tu modifies le cgi pour y ajouter la vérif, les calculs, et l'envoi du mail. Tu peux aussi faire ca en php, en asp, en ... enfin le langage que tu préfères. Perso les cgi c/c++, j'aime pas.
Voilà
Marsh Posté le 23-05-2005 à 15:07:02
plainsofpain a écrit : Merci masklinn, c'est bien ce que je pensais, mais j'avais des doutes quand je vois ce qui embêtait zoeweb. |
Les CGI ne sont que rarement en C/C++.
Le langage de CGI le plus courant est Perl, ensuite on trouve Python.
CGI était en fait le truc d'avant PHP/ASP/JSP/mod_perl/mod_python.
Les gros inconvénients des CGI:
1- Ca crée un processus complet (en fait, ça fork le processus initial), donc très grosse conso de données
2- Les technos CGI doivent créer la page complète, tu peux pas appliquer des bouts de codes CGI au milieu de ton HTML.
Ensuite, sont arrivés les systèmes légers (PHP, ASP, JSP, mod_perl, mod_python, ...) qui créent non un processus mais un thread (beaucoup plus léger), et il a été fait en sorte de pouvoir intégrer des petits bouts de langage serveur au sein des codes HTML
Marsh Posté le 23-05-2005 à 15:10:39
Masklinn, merci, je ne pensais pas que les cgi existaient autrement qu'en C/C++, tu m'apprends un truc la, c'est certainement pas la dernière fois
Apparamment j'ai raté un gros truc, car perl et python sont deux langages intéressants.
Mais cela n'empeche que je préfère quand meme de loin les sytèmes légers
Marsh Posté le 23-05-2005 à 15:15:31
plainsofpain a écrit : Masklinn, merci, je ne pensais pas que les cgi existaient autrement qu'en C/C++, tu m'apprends un truc la, c'est certainement pas la dernière fois |
En fait, "CGI" c'est juste une interface d'entrée/sortie, tu peux interfacer n'importe quel langage avec (y compris de l'ASM si t'as rien de mieux à foutre), les données clients sont fournies via STDIN et tu produis la page via STDOUT, stou, le langage derrière n'a aucune importance.
La grande majorité des CGI étaient (et sont toujours) créés en Perl, parce que malgré son illisibilité c'est le langage le plus puissant en terme de gestion de chaines de caractère, et la génération de pages CGI c'est uniquement du traitement et de la production de chaînes.
Les systèmes légers sont quasiment toujours de meilleures idées que les CGI, ils consomment moins de ressources et demandent beaucoup moins de temps à coder.
De plus des projets comme mod_perl ou mod_python permettent de bénéficier de vrais langages de prog en systèmes légers, sans avoir à passer par les CGI, et le fait qu'ils soient faciles à étendre (via des modules C/C++) permet d'en optimiser certains modules sans avoir à passer aux CGI/C ou CGI/C++ pour gagner en vitesse.
Marsh Posté le 23-05-2005 à 15:37:08
merci,
Marsh Posté le 24-05-2005 à 14:05:00
Merci à tous pour vos reponses
et oui je savais que le cgi etait cote serveur...
seulement je ne programme pas mon cgi
j'en emploie un tout fait et en revanche je programme dans le js...
concernant le cgi merci de vos explications.
Mais comme je n'utilise ni php ni asp
je ne peux pas effectuer les calculs sur le serveur...
j'ai resolu mes problemes via l'utilisation de champ cachés
auxquels j'alloue une valeur initiale nulle
et ensuite via une fonction js
je leur alloue des valeurs dynamiquements...
Ces champs sont alors envoyés par mail via cgi....
Voila.
Merci encore.
Marsh Posté le 21-05-2005 à 01:48:35
dans les champs html
input value""
on ne peut pas lui allouer une valeur dynamiquement.
Par exemple:
soit la valeur d'un autre champ? <input type="text" id="monChamp" value="monChamp2.value">
soit la valeur d'une variable <div id="monResultat"> ? <input type="text" id="monChamp" value="monResultat">
dans les deux cas, le texte tappé apparait bêtement dans le champ et non la valeur!
Y'a une solution