antonio66 Posté 30 Mai 2007 Posté 30 Mai 2007 Bonjour, Je viens de trouver un formulaire de commande qui me fait vraiment l'affaire car il est facile de modification et je suis nul en codage. Le problème est que les frais de ports se calculent automatiquement avec la donnée que l'on remplis (var port = 5.6;) Je voudrais donc que le résultat final de ce formulaire soit calculé avec les frais de port que l'on rentre manuellement dans le champs "port" au dessus de total. Pour un programmeur, ce ne doit pas être trop compliqué, mais pour moi, c'est un casse tête. Je viens donc chercher un peu d'aide auprès des pros de ce forum Merci encore pour votre aide Voici le code : <script type="text/javascript"><!--/*Script téléchargé du Coin Web de QuentinCNom du script : Bon de commandeCatégorie : FormulairesDate de dernière modification : Lundi 23 janvier 2006 15:30© 2002-2006, QuentinCVous pouvez utiliser, modifier et redistribuer ce script, à condition de laisser les présents commentaires intacts, et de ne pas l'utiliser à des fins commerciales.*/var port = 5.6;var tva = 0.196;function calculerPrix(champQte) {var champPrix = champQte.form.elements[champQte.name + "prix"];var champPrixUnite = champQte.form.elements[champQte.name + "unite"];varprixUnite = parseFloat(champPrixUnite.value);var qte = champQte.value;if (qte == "") qte = 0;else if (isNaN(qte)) qte = 0;else qte = Math.floor(qte);if(qte < 0) qte = 0;var prix = prixUnite * qte;champPrix.value = formatPrix(prix);calculerTotal(champQte.form);}functioncalculerTotal (form) {var champTva = form.elements['tva'];var champPort = form.elements['port'];var champTotal = form.elements['total'];champPort.value= formatPrix(port);var total = 0;for (var i in form.elements) {if (//form.elements[i].namei.toLowerCase().indexOf("prix") != -1)total += parseFloat(form.elements[i].value);}total += port;var tvaCalc = tva * total;tvaCalc = Math.round(tvaCalc*100)/100.0;champTva.value= formatPrix(tvaCalc);total += tvaCalc;champTotal.value = formatPrix(total);}function formatPrix (n) {n = Math.round(n*100)/100.0;varstr = ""+n+"";var i = str.indexOf(".");if (i == -1) str += ".00";else if (i == str.length-2) str += "0";return str;}// --></script><form name="f1"><table width="606"><tr><td width="124"></td><td width="233"> <p align="center"><b>Article</b></p> </td><td width="53">Quantité</td><td width="99">Prix par unité</td><td width="65">Prix selonquantité</td></tr><tr><td width="124"></td><td width="233">Article 1 de base</td><td width="53"> <input type="text" size="3" name="c1" onchange="calculerPrix(this);" /></td><td width="99"> <input type="text"size="6" name="c1unite" value="300" /></td><td width="65"> <input type="text" name="c1prix" size="6" value="0.00" /></td></tr><tr><td width="124"></td><td width="233">Article 2 de luxe</td><td width="53"><input type="text" size="3" name="c2" onchange="calculerPrix(this);" /></td><td width="99"> <input type="text" size="6" name="c2unite" value="15" /></td><td width="65"><input type="text" name="c2prix" size="6" value="0.00" /></td></tr><tr><td width="124"></td><td width="233"></td><td width="53"> </td><td width="233" align="right"><b>Fraisde port </b></td><td width="65"> <input type="text" name="port" value="5,6" size="6" /> </td></tr><tr><td width="124"></td><td width="233"></td><td width="53"> </td><td width="233" align="right"><b>TVA </b></td><td width="65"><input type="text" name="tva" value="0" size="6" /> </td></tr><tr><td width="124"></td><td width="233"></td><td width="53"> </td><td width="233" align="right"><b>TOTAL TTC </b></td><td width="65"> <input type="text" name="total"value="0.00" size="6" /> </td></tr></table></form>
Théo B. Posté 2 Juin 2007 Posté 2 Juin 2007 (modifié) As-tu essayé ceci ? <input type="text" name="port" value="5,6" size="6" onKeyUp="java script:var port=this.value;" /> Modifié 2 Juin 2007 par Théo B.
iNCiTE Web Posté 4 Juin 2007 Posté 4 Juin 2007 Il faut remplacer total += port; par total += parseFloat(champPort.value); Il faut également commenter la ligne "champPort.value= formatPrix(port);" Mais j'ai l'impression que le script (Javascript d'ailleurs, pourquoi forum PHP ?) ne fonctionne pas comme attendu, notamment au niveau du calcul du total... Bon courage
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant