Page 1 sur 1

trois champs de formulaire liées

Posté : 21 août 2007, 12:48
par amadou
Mon formulaire a trois champs

<input type='text' name='quantite'>
<input type='text' name='prixunitaire'>
<input type='text' name='total'>

Je voudrais calculer automatiquement le prix total lorsque les champs quantité et Prix unitaire sont renseignés sans valider le formulaire.

Merci de m'aider.[/php]

Posté : 21 août 2007, 12:54
par santaclos
lu essai ca je ne sais pas si ca marche je ne l'ai jamais testé
$var1 = $_POST['quantite'];
$var2 = $_POST['prixunitaire'];
$var3 = $var1 + $var2;

 <input type='text' name='quantite'>
<input type='text' name='prixunitaire'>
<input type='text' name='total' value="<?php $var3 ?>"> 


Pas encore satisfait

Posté : 21 août 2007, 13:01
par amadou
En fait le total n'est pas calculé après avoir posté le formulaire. Dès que les deux champs renseignés perdent le focus on affiche le total.

On ne peut donc parler de $_POST['nomchamp'];


Merci

Posté : 21 août 2007, 13:03
par d0m
dans ce cas il faut utiliser une fonction javascript qui va :
1. lorsque un des 2 champs perd le focus
2. calculer la somme des champs texte
3. mettre cette somme dans le champ total

Bonne idée

Posté : 21 août 2007, 13:07
par amadou
Merci pour l'idée. Puis je avoir une idée du code javascript ? Je suis nul en javascript.

Posté : 21 août 2007, 13:12
par santaclos
moi aussi je suis tres nul en java ^^
je peux que te rediriger la ou si quelqu'un peut l'aider
http://www.siteduzero.com/tuto-3-2060-0 ... cript.html

Posté : 21 août 2007, 13:13
par d0m
pour la perte de focus c'est onBlur="fonctionJavascript"

Code : Tout sélectionner

function fonctionJavascript(){ document.nomFormulaire.total.value = document.nomFormulaire.quantite.value * document.nomFormulaire.prixunitaire.value; }

Posté : 21 août 2007, 13:19
par B.Moncef
tu devras utiliser l'évènement onblur();

<input type="text" name="quantite" onblur="javascript:somme()">
<input type="text" name="prixunitaire" onblur="javascript:somme()">
<input type="text" name="total">

et entre tes balises head, tu places le code de ta fonction

Code : Tout sélectionner

<script type="text/javascript"> function somme() { var input1 = document.getElementByName('quantite'); var input2 = document.getElementByName('prixunitaire'); var total = document.getElementByName('total'); total.value = parseInt(input1.value) + parseInt(input2.value); } </script>
Je ne suis pas un as du JS, mais il me semble que ce code est correct.

EDIT : grillé.

Posté : 21 août 2007, 14:32
par mere-teresa
Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "Javascript, AJAX".

Posté : 22 août 2007, 06:51
par phil47
salut, essai ça :

Code : Tout sélectionner

function somme() { var input1 = document.getElementByName('quantite').value; var input2 = document.getElementByName('prixunitaire').value; var total; total= parseInt(input1) + parseInt(input2); return total; }