Calcul total avec des input aux id dynamique

stephy -  
 stephy -
Bonjour,
J'ai créé une fiche de commande dans un formulaire
lorsque que je saisie une qte de pdt le calcul 'prix*qte' s'effectue correctement et automatiquement
mais je n'arive pas a calculer le montant total automatiquement (je ne doit pas utiliser de bonton)
qlq1 pourrait-il m'aider?
merci d'avance!
A voir également:

7 réponses

guimton Messages postés 89 Statut Membre 10
 
Salut,

tu galères encore avec ton projet de boutique en ligne à ce que je vois ;)

alors en fait ton probleme c'est d'avoir une case avec le prix total de tous les produits c'est ça ???

sur chaque input ou tu as créé le qte*prix tu place un id (ex: totpdt1, totpdt2, etc....

et tu crée une fonction js qui lors d'un onblur du input du choix de la quantité va mettre à jour le input de prix total.

oublies pas de mettre un readonly à tes input de prix total.

et de créer un $_SESSION('total'] = le montant total.
0
stephy
 
Ha mon sauveur est revenu! ;-)
Ok je vais essayer de faire ça
je te dirais si ça marche
0
guimton Messages postés 89 Statut Membre 10 > stephy
 
c'est un projet pour tes cours que tu dois faire là ?
0
stephy > guimton Messages postés 89 Statut Membre
 
Non je suis en stage et jai proposé l'automatisation de certaines taches
0
stephy
 
Suis je sur la bonne voix chef?
php ça peut aller mais js c pas la mm chose


code js :
<SCRIPT language="javascript" >
function calcul(){
var qte = Number(document.getElementById(qte".$i.").value);
var prix = Number(document.getElementById(prix".$i.").value);

var montant = Number(prix * qte);
document.getElementById("montant").value = montant;
}
</SCRIPT>

code php:
while ($row1 = mysql_fetch_row($result1))
{
if ($i<$nb)
{
echo "</td><td>";
//reference du produit
echo "<input id=\"ref".$i."\" name=\"ref".$i."\" value=\"$row1[0]\" size=\"4\">" ;
echo "</td><td>";
//designation du produit
echo "<input id=\"des".$i."\" name=\"des".$i."\" value=\"$row1[1]\" size=\"30\">" ;
echo "<td>";
//quantite du produit
echo "<input type=\"text\" id=\"qte".$i."\" name=\"qte".$i."\" value=\"\" onkeydown = \"document.getElementById('total".$i."').value = (this.value * document.getElementById('prix".$i."').value);\" size=\"5\" onblur =montant() >";
echo "</td><td>";
//unite du produit
echo "<input id=\"unite".$i."\" name=\"unite".$i."\" value=\"$row1[3]\" size=\"20\" readonly>" ;
echo "</td><td>";
//prix du produit
echo "<input type=\"text\" id=\"prix".$i."\" name=\"prix".$i."\" readonly value=\"$row1[2]\" />";
echo "</td><td>";
// echo "<input type=\"text\" id=\"total".$i."\" name=\"total".$i."\" readonly value=\"\" onBlur=\"document.getElementById('montant').value = (this.value + document.getElementById('montant').value);\">";
echo "<input type=\"text\" id=\"total".$i."\" name=\"total".$i."\" readonly value=\"\" >";
echo "</td>";
echo "</tr>";
$i=$i+1;
// $montant=$montant+$total;
}
}
0
guimton Messages postés 89 Statut Membre 10
 
Presque ;)

//quantite du produit
echo "<input type=\"text\" id=\"qte".$i."\" name=\"qte".$i."\" value=\"\" onkeydown = \"document.getElementById('total".$i."').value = (this.value * document.getElementById('prix".$i."').value);\" size=\"5\" onblur =\"montant(".$i.");\" >";



// echo "<input type=\"text\" id=\"total".$i."\" name=\"total".$i."\" readonly value=\"\" onBlur=\"document.getElementById('montant').value = (this.value + document.getElementById('montant').value);\">"; le onblur ne sert à rien içi. car ton readonly evite de pouvoir modifier le montant. et le on blur s'execute quand tu quittes le focus d'un champ.
0
guimton Messages postés 89 Statut Membre 10
 
ou fait tu as pas un site pour voir ce que ça donne ?

c'est plus facile de voir pour résioudre ;)
0
stephy
 
ça me fait le mm problème que javais avant cad :
- le calule ne sexecute déja pas automatiquement (il faut appuyer sur des lignes pour que klk chose saffiche dans le montant total)
- le calcule ne se fait pas correctement, les valeur sajoutes les unes après les autres

arf :-( la galère
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
stephy
 
c un "site" en local, dsl jc bien que ça doit pas etre facile a comprendre qd on voit pas...
(encore une fois merci de tes réponses!)
0
guimton Messages postés 89 Statut Membre 10
 
avec le onblur=montant($i) tu as pensé à modifier ta fonction montant ??

function calcul(val){
var qte = Number(document.getElementById('qte'+val).value);
var prix = Number(document.getElementById('prix'+val).value);

var montant = Number(prix * qte);
document.getElementById("montant").value = montant;
}
0
stephy
 
cela donne le mm résulat
0
stephy
 
Non ben enfaite ça ne fait plus rien pour le montant total
j'ai pe etre mal compris klk chose que tu mas di de faire

while ($row1 = mysql_fetch_row($result1))
{
if ($i<$nb)
{
echo "</td><td>";
//reference du produit
echo "<input id=\"ref".$i."\" name=\"ref".$i."\" value=\"$row1[0]\" size=\"4\">" ;
echo "</td><td>";
//designation du produit
echo "<input id=\"des".$i."\" name=\"des".$i."\" value=\"$row1[1]\" size=\"30\">" ;
echo "<td>";
//quantite du produit
echo "<input type=\"text\" id=\"qte".$i."\" name=\"qte".$i."\" value=\"\" onkeydown = \"document.getElementById('total".$i."').value = (this.value * document.getElementById('prix".$i."').value);\" size=\"5\" onblur =\"montant(".$i.");\" >";

echo "</td><td>";
//unite du produit
echo "<input id=\"unite".$i."\" name=\"unite".$i."\" value=\"$row1[3]\" size=\"20\" readonly>" ;
echo "</td><td>";
//prix du produit
echo "<input type=\"text\" id=\"prix".$i."\" name=\"prix".$i."\" readonly value=\"$row1[2]\" />";
echo "</td><td>";
echo "<input type=\"text\" id=\"total".$i."\" name=\"total".$i."\" readonly value=\"\" >";
echo "</td>";
echo "</tr>";
$i=$i+1;
// $montant=$montant+$total;
}
}
echo '<tr><td colspan="5" align="right">';
//on calcul ici le montant total
// echo '<b>Total HT </b>: </td><td>'.$montant. '€';
echo "<b>Total HT </b>: </td><td width=5><input type=\"text\" id=\"montant\" name=\"montant\" readonly value=\"\" />€";
echo '</td></tr><tr><td colspan="6">';
echo '</td></tr></table>';
//echo '<a href="exportation.php">CREER LA COMMANDE</a>';
echo '<input type="submit" value="CREER LA COMMANDE" name="commander" />';
echo '</form>';



js :

<SCRIPT language="javascript" >
function calcul(val){
var qte = Number(document.getElementById('qte'+val).value);
var prix = Number(document.getElementById('prix'+val).value);

var montant = Number(prix * qte);
document.getElementById("montant").value = montant;
}
</SCRIPT>
0