Création formulaire avec calculs

Signaler
Messages postés
137
Date d'inscription
dimanche 7 juillet 2002
Statut
Membre
Dernière intervention
11 janvier 2009
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
Bonjour,

j'ai un formulaire de plusieurs lignes contenant chacune 4 éléments :
Libélle - prix - quantité - total

En fin de page : un champ total global.

Seul la quantité peut changer.

J'aimerais que lors de la saisie de la quantité, le total de la ligne se mette à jour automatiquement et que le total de la page se calcul aussi.

Quelqu'un peut-il m'aider ?
Merci

Orélien.

10 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
Bonjour,
on peut faire ça de 10000 manières différentes,
un ch'tit exemple "tout simple" ?
<code>
<HTML>
<HEAD>
<TITLE></TITLE>
<script type= "text/javascript">
function calcul(ind)
{res[ind].value=Number(pri[ind].value)*Number(qte[ind].value);
total.value=0;
for (var n=0;n<res.length;n++)
{ total.value=Number(total.value)+Number(res[n].value); } }
</script>
</HEAD>

article |prix |Qté | = |
----
un
</HTML>

les calculs sont lancés dès que l'on
"quitte" les champs "qté".
il faudrait contrôler les qtés entrées,
gérer correctement les arrondis ...
Cordialement Bul. [Site] [[mailto:marcel.Bultez@Tiscali.fr Mail]]
Messages postés
137
Date d'inscription
dimanche 7 juillet 2002
Statut
Membre
Dernière intervention
11 janvier 2009

Merci beaucoup !

Une autre question: est-il possible de n'avoir que la zone "quantité" de modifiable par l'utilisateur et que les autres zones soient affichées sous forme de texte uniquement ?

Si non est-il possible de bloquer la saisie de la zone "prix" par exemple ?

Merci

Orélien.
Messages postés
137
Date d'inscription
dimanche 7 juillet 2002
Statut
Membre
Dernière intervention
11 janvier 2009

Salut,

J'avais mal vu, c'est ok pour bloquer les zones.

Je voulais savoir comment combiner tout ça à un formulaire afin de l'envoyer par mail en php ?
Si je place tout ces éléments dans une balise "FORM" cela ne fonctionne plus...

Quelqu'un as t'il une solution ?

Merci.

Orélien.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
tous les noms utilisés ( qte,pri,res...) doivent
être préfixés avec le name de la form
<form name="frm".... par exemple, donc
frm.res[n].value, frm.qte[n]....
Cordialement Bul. [Site] [[mailto:marcel.Bultez@Tiscali.fr Mail]]
Messages postés
137
Date d'inscription
dimanche 7 juillet 2002
Statut
Membre
Dernière intervention
11 janvier 2009

Merci !

Maintenant avec tout ça je n'arrive plus à récupérertoutes les données du formulaire dans un fichier php.

Aurais-tu une solution ?

Merci beaucoup...

Orélien.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
[ table border=0 cellspacing=0 cellpadding=4 bgcolor=#E0E0E0 tr td class=code br < form name= frm br action= programme.php br method= post ....> br ici les lignes ... avec les noms des br champs de la forme qte[] , pri[] ... br qu il faut gérer en avec br la syntaxe : document.frm[ qte[] table border=0 cellspacing=0 cellpadding=4 bgcolor=#E0E0E0 tr td class=code br < form name= frm br action= programme.php br method= post ....> br ici les lignes ... avec les noms des br champs de la forme qte[] , pri[] ... br qu il faut gérer en avec br la syntaxe : document.frm[ qte[]][n]
et soit

soit
en javascript faire frm.submit()
le php gérant ces données avec
$_POST["qteSite] [[mailto:marcel.Bultez@Tiscali.fr Mail]]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
comme parfois, le message
s'affiche mal ....

<form name="frm"
action="programme.php"
method="post"....>

ici les lignes ... avec les noms des
champs de la forme "qte[]","pri[]"...

</form>

qu'il faut gérer en javascript avec
la syntaxe : document.frm["qte[]"][n]

et soit

soit
en javascript faire frm.submit()

le php gérant ces données avec
$_POST["qte"][$numero]
Messages postés
137
Date d'inscription
dimanche 7 juillet 2002
Statut
Membre
Dernière intervention
11 janvier 2009

Salut,

Merci pour ton aide mais aurais-tu un exemple plus concret stp, ca je suis un peu perdu dans tout ça...

Merci

Orélien.
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
[voici pour l aspect : br table border=0 cellspacing=0 cellpadding=4 bgcolor=#E0E0E0 tr td class=code br < HTML> br < HEAD> br < TITLE> < /TITLE> br < script type= text/ > br function calcul ind br {document.frm[ res[] voici pour l aspect : br table border=0 cellspacing=0 cellpadding=4 bgcolor=#E0E0E0 tr td class=code br < HTML> br < HEAD> br < TITLE> < /TITLE> br < script type= text/ > br function calcul ind br {document.frm[ res[]][ind].value=
Number(document.frm["pri[]Site] [[mailto:marcel.Bultez@Tiscali.fr Mail]]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
34
encore mal affiché ????
pour l'aspect javascript :

<HTML>
<HEAD>
<TITLE></TITLE>
<script type= "text/javascript">
function calcul(ind)
{document.frm["res[]"][ind].value=
Number(document.frm["pri[]"][ind].value) *
Number(document.frm["qte[]"][ind].value);
frm.total.value=0;
for (var n=0;n<document.frm["res[]"].length;n++)
{frm.total.value=Number(frm.total.value)+Number(document.frm["res[]"][n].value); } }
</script>
</HEAD>

<form name="frm"
action="programme.php"
method="post">
article |prix |Qté | = |
----
un,
,
,
,
----
deux,
,
,
,
----
trois,
,
,
,
----
Total |
,
,

</form>
</HTML>

l'appui sur le bouton "Envoyer" va transmettre
le formulaire à "programme.php" qui va traiter
$_POST["total"] et
les Arrays $_POST["pri"][n° ligne],
$_POST["qte"][n° ligne], $_POST["res"][n° ligne]
cordialement.