trois champs de formulaire liées

Eléphanteau du PHP | 17 Messages

21 août 2007, 12:48

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]

Eléphanteau du PHP | 26 Messages

21 août 2007, 12:54

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 ?>"> 


Eléphanteau du PHP | 17 Messages

21 août 2007, 13:01

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

d0m
Mammouth du PHP | 1141 Messages

21 août 2007, 13:03

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

Eléphanteau du PHP | 17 Messages

21 août 2007, 13:07

Merci pour l'idée. Puis je avoir une idée du code javascript ? Je suis nul en javascript.

Eléphanteau du PHP | 26 Messages

21 août 2007, 13:12

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

d0m
Mammouth du PHP | 1141 Messages

21 août 2007, 13:13

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; }

Eléphanteau du PHP | 38 Messages

21 août 2007, 13:19

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é.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

21 août 2007, 14:32

Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "Javascript, AJAX".
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphanteau du PHP | 13 Messages

22 août 2007, 06:51

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; }