"OnChange" avec php
Fermé
elodie
-
11 mars 2003 à 10:14
JEROMAX Messages postés 274 Date d'inscription jeudi 22 février 2001 Statut Membre Dernière intervention 7 octobre 2013 - 13 mars 2003 à 09:10
JEROMAX Messages postés 274 Date d'inscription jeudi 22 février 2001 Statut Membre Dernière intervention 7 octobre 2013 - 13 mars 2003 à 09:10
A voir également:
- Onchange php
- Easy php - Télécharger - Divers Web & Internet
- Php?id=1 - Forum PHP
- \R php ✓ - Forum PHP
- Php if plusieurs conditions ✓ - Forum PHP
- Lien Dynamique avec SELECT (onChange) - Forum PHP
10 réponses
salut élo,
tiens essayes ça... dis moi si c'est un truc de ce genre que tu cherchais:
<html>
<head>
<title>
</title>
<script language="javascript">
function calculTotal(){
document.calcul.total.value = document.calcul.prix.value * document.calcul.quantite.value;
}
</script>
</head>
<body>
<form name="calcul">
prix : <input type="text" name="prix" onkeyup="calculTotal()"><br>
quantite : <input type="text" name="quantite" value="1" onkeyup="calculTotal()"><br>
total : <input type="text" name="total">
</form>
</body>
</html>
a +
tiens essayes ça... dis moi si c'est un truc de ce genre que tu cherchais:
<html>
<head>
<title>
</title>
<script language="javascript">
function calculTotal(){
document.calcul.total.value = document.calcul.prix.value * document.calcul.quantite.value;
}
</script>
</head>
<body>
<form name="calcul">
prix : <input type="text" name="prix" onkeyup="calculTotal()"><br>
quantite : <input type="text" name="quantite" value="1" onkeyup="calculTotal()"><br>
total : <input type="text" name="total">
</form>
</body>
</html>
a +
Merci de te pencher sur mon pb,
Mais le nom de mes <input> sont des tableaux. Je peux pas mettre des noms ordinaires j'en ai besoin pour la suite de mon code.
tu vois, pour le prix c: <input name="prix[]">
C pour cela que je crois pas que ton code puisse marché avec le mien.
Mais le nom de mes <input> sont des tableaux. Je peux pas mettre des noms ordinaires j'en ai besoin pour la suite de mon code.
tu vois, pour le prix c: <input name="prix[]">
C pour cela que je crois pas que ton code puisse marché avec le mien.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
JEROMAX
Messages postés
274
Date d'inscription
jeudi 22 février 2001
Statut
Membre
Dernière intervention
7 octobre 2013
10
12 mars 2003 à 11:13
12 mars 2003 à 11:13
Il suffit de modifier les noms dans la fonction calculTotal()
[ JEROMAX ] http://www.jeromax.free.fr
[ JEROMAX ] http://www.jeromax.free.fr
Bobinours
Messages postés
2898
Date d'inscription
jeudi 26 avril 2001
Statut
Membre
Dernière intervention
21 mars 2013
504
12 mars 2003 à 14:23
12 mars 2003 à 14:23
Salut elodie,
Si tu utilises des tableaux (input[]) dans ce cas, prends l'habitude de toujours utiliser elements[] pour y accèder :
document.calcul.elements['total'].value = document.calcul.elements['prix'].value * document.calcul.elements['quantite'].value;
Si tu utilises des tableaux (input[]) dans ce cas, prends l'habitude de toujours utiliser elements[] pour y accèder :
document.calcul.elements['total'].value = document.calcul.elements['prix'].value * document.calcul.elements['quantite'].value;
Salut bobinours,
Désolé mais ton truc sa marche pas.
Je te redonne mon code si ca peut t'aider à mieux comprendre:
<form name="enr">
<table>
<tr>
echo'<td><input type="texte" name="pu[]"></td>';
echo'<td><input type="texte" name="qte[]"></td>';
echo'<td><input type="texte" name="montant[]" > €
</td>';
</tr>
</table>
</form>
Sinon, c pas grave. Je m'arrangerai autrement.
a plus
Désolé mais ton truc sa marche pas.
Je te redonne mon code si ca peut t'aider à mieux comprendre:
<form name="enr">
<table>
<tr>
echo'<td><input type="texte" name="pu[]"></td>';
echo'<td><input type="texte" name="qte[]"></td>';
echo'<td><input type="texte" name="montant[]" > €
</td>';
</tr>
</table>
</form>
Sinon, c pas grave. Je m'arrangerai autrement.
a plus
Bobinours
Messages postés
2898
Date d'inscription
jeudi 26 avril 2001
Statut
Membre
Dernière intervention
21 mars 2013
504
13 mars 2003 à 02:11
13 mars 2003 à 02:11
Tu mélanges du code PHP et HTML...
Voilà ce dont je te parlais :
<html>
<head>
<script language="javascript">
function calculTotal(){
document.enr.elements['montant[]'].value = document.enr.elements['pu[]'].value * document.enr.elements['qte[]'].value;
}
</script>
</head>
<body>
<form name="enr">
<table>
<tr>
<td><input type="texte" name="pu[]" onkeyup="calculTotal()"></td>
<td><input type="texte" name="qte[]" onkeyup="calculTotal()"></td>
<td><input type="texte" name="montant[]"> € </td>
</tr>
</table>
</form>
</body>
</html>
Je suppose cependant que tu nous caches l'utilisation de plusieurs INPUT avec les mêmes noms.
Dans ce cas, je te suggère fortement d'ajouter un champ caché (INPUT Hidden) par ligne qui contiendra le numero de la ligne de l'article. Puis d'utiliser les indices du tableau elements[].
Voilà ce dont je te parlais :
<html>
<head>
<script language="javascript">
function calculTotal(){
document.enr.elements['montant[]'].value = document.enr.elements['pu[]'].value * document.enr.elements['qte[]'].value;
}
</script>
</head>
<body>
<form name="enr">
<table>
<tr>
<td><input type="texte" name="pu[]" onkeyup="calculTotal()"></td>
<td><input type="texte" name="qte[]" onkeyup="calculTotal()"></td>
<td><input type="texte" name="montant[]"> € </td>
</tr>
</table>
</form>
</body>
</html>
Je suppose cependant que tu nous caches l'utilisation de plusieurs INPUT avec les mêmes noms.
Dans ce cas, je te suggère fortement d'ajouter un champ caché (INPUT Hidden) par ligne qui contiendra le numero de la ligne de l'article. Puis d'utiliser les indices du tableau elements[].
Exactement, dans 1 page l'utilisateur saisi le nombre de produit qu'il veut et c dans la 2°page que j'affiche mes champs pour qu'il saisisse les produits qu'il veut.
Donc dans ma 2°page, je fait une boucle sur mes <input>.
En tout cas je n'utilise pas d'autres <input> avec le même nom.
mon code:
<body>
<form name="enr" action="insert.php">
<h1>COMMANDE </h1>
<table border=1><tr>
<th><h5>Prix Unitaire (en euro)</h5></th>
<th><h5>Quantité</h5></th>
<th><h5>Montant HT</h5></th></tr>
<?
$quantite=$nombre; //c le nb saisi dans ma 1°page
echo'<input type=hidden name=qt value='.$quantite.'>';
$host="localhost";
$user="root";
$password="";
$base="bdd";
$link=mysql_connect($host,$user,$password) or die("Impossible
de se connecter");
mysql_select_db("$base") or die("Impossible de se connecter à la
base");
for ($nb=1; $nb<=$quantite; $nb=$nb+1) { //début de ma boucle
?>
<tr>
<? echo'<td><input type="text" name="produit[]"></td>';
echo' <td><input type="texte" name="designation[]">
</td>';
echo'<td><input type="texte" name="pu[]"
onKeyup="calculmontant()"></td>';
echo'<td><input type="texte" name="qte[]"
onKeyup="calculmontant()"></td>';
echo'<td><input type="texte" name="montant[]"> €
</td>';
?>
</tr>
<? } ?> //fin de ma boucle
</table>
</form>
</body>
</html>
Voila.
Par contre ma fonction ne marche pas:
function calculTotal(){
document.enr.elements['montant[]'].value =
document.enr.elements['pu[]'].value * document.enr.elements
['qte[]'].value;
}
Et lorsque j'ouvre ma page et que mon pointeur est dans le champ prix, il dit qu'il y a une erreur dans mon code.
A plus.
Donc dans ma 2°page, je fait une boucle sur mes <input>.
En tout cas je n'utilise pas d'autres <input> avec le même nom.
mon code:
<body>
<form name="enr" action="insert.php">
<h1>COMMANDE </h1>
<table border=1><tr>
<th><h5>Prix Unitaire (en euro)</h5></th>
<th><h5>Quantité</h5></th>
<th><h5>Montant HT</h5></th></tr>
<?
$quantite=$nombre; //c le nb saisi dans ma 1°page
echo'<input type=hidden name=qt value='.$quantite.'>';
$host="localhost";
$user="root";
$password="";
$base="bdd";
$link=mysql_connect($host,$user,$password) or die("Impossible
de se connecter");
mysql_select_db("$base") or die("Impossible de se connecter à la
base");
for ($nb=1; $nb<=$quantite; $nb=$nb+1) { //début de ma boucle
?>
<tr>
<? echo'<td><input type="text" name="produit[]"></td>';
echo' <td><input type="texte" name="designation[]">
</td>';
echo'<td><input type="texte" name="pu[]"
onKeyup="calculmontant()"></td>';
echo'<td><input type="texte" name="qte[]"
onKeyup="calculmontant()"></td>';
echo'<td><input type="texte" name="montant[]"> €
</td>';
?>
</tr>
<? } ?> //fin de ma boucle
</table>
</form>
</body>
</html>
Voila.
Par contre ma fonction ne marche pas:
function calculTotal(){
document.enr.elements['montant[]'].value =
document.enr.elements['pu[]'].value * document.enr.elements
['qte[]'].value;
}
Et lorsque j'ouvre ma page et que mon pointeur est dans le champ prix, il dit qu'il y a une erreur dans mon code.
A plus.
JEROMAX
Messages postés
274
Date d'inscription
jeudi 22 février 2001
Statut
Membre
Dernière intervention
7 octobre 2013
10
13 mars 2003 à 08:58
13 mars 2003 à 08:58
je ne comprend pas pourquoi tu t'embete avec tes pu[] et tes montant[]
Comme ça, je pense que tu n'auras plus de probleme
for ($nb=1; $nb<=$quantite; $nb=$nb+1) { //début de ma boucle
?>
<tr>
<? echo'<td><input type="text" name="produit$nb"></td>';
echo' <td><input type="texte" name="designation$nb">
</td>';
echo'<td><input type="texte" name="pu$nb"
onKeyup="calculmontant($nb)"></td>';
echo'<td><input type="texte" name="qte$nb"
onKeyup="calculmontant($nb)"></td>';
echo'<td><input type="texte" name="montant$nb"> €
</td>';
?>
</tr>
<? } ?> //fin de ma boucle
function calculMontant(pNum){
document.all['montant'+pNum].value=document.all['pu'+pNum].value*document.all['qte'+pNum].value
}
par contre tu as interet de faire un test pour savoir si c'est du numeric dans tous les champs avant de balancer ton calcul, sinon ça va planter grave et notament quand le champ est vide...
[ JEROMAX ] http://www.jeromax.free.fr
Comme ça, je pense que tu n'auras plus de probleme
for ($nb=1; $nb<=$quantite; $nb=$nb+1) { //début de ma boucle
?>
<tr>
<? echo'<td><input type="text" name="produit$nb"></td>';
echo' <td><input type="texte" name="designation$nb">
</td>';
echo'<td><input type="texte" name="pu$nb"
onKeyup="calculmontant($nb)"></td>';
echo'<td><input type="texte" name="qte$nb"
onKeyup="calculmontant($nb)"></td>';
echo'<td><input type="texte" name="montant$nb"> €
</td>';
?>
</tr>
<? } ?> //fin de ma boucle
function calculMontant(pNum){
document.all['montant'+pNum].value=document.all['pu'+pNum].value*document.all['qte'+pNum].value
}
par contre tu as interet de faire un test pour savoir si c'est du numeric dans tous les champs avant de balancer ton calcul, sinon ça va planter grave et notament quand le champ est vide...
[ JEROMAX ] http://www.jeromax.free.fr
Je doit faire des tableaux pour que lorsque l'utilisateur saisi les produits. Les valeurs saisies ne soi pas perdu d'une ligne à une autre. Car dans pas page "insert.php" j'insère les valeurs dans ma base en récupérant les valeurs dans ses tableaux.
Ecoutez, laissez tomber c pas grave.
Je vais pas m'éterniser sur ce problème, g encore d'autre chose à faire.
En tou cas, je vous remerci d'avoir réfléchi sur mon pb.
Ecoutez, laissez tomber c pas grave.
Je vais pas m'éterniser sur ce problème, g encore d'autre chose à faire.
En tou cas, je vous remerci d'avoir réfléchi sur mon pb.
JEROMAX
Messages postés
274
Date d'inscription
jeudi 22 février 2001
Statut
Membre
Dernière intervention
7 octobre 2013
10
13 mars 2003 à 09:10
13 mars 2003 à 09:10
et alors?
les valeurs ne sont pas perdues....
Tu les récupère aussi pour les enregistrer dans ta base....
C'est même plus simple.
[ JEROMAX ] http://www.jeromax.free.fr
les valeurs ne sont pas perdues....
Tu les récupère aussi pour les enregistrer dans ta base....
C'est même plus simple.
[ JEROMAX ] http://www.jeromax.free.fr