Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

aide pour modifier un code en javascript


Messages recommandés

Posté(e) (modifié)

bonsoir a tous

 

j ai trouve ce morceau de code ,mais j ai beau faire travailler ems menages ,je ne vois aps comment ajouter une colone appellee poids et qui afficherais le poids en meme temps que le prix des que l on entre un article

 

merci de votre aide

 

<html>
 <head>
   <title>Test</title>
   <meta http-equiv="content-type" content="text/html; charset=utf-8" />
   <script type="text/javascript"> // <![CDATA[
       function AjouteVirgule(nombre) {
         var AvecVirgule = "";
         var num = "" + Math.round(nombre*100);
         if (num.length == 0) {
             AvecVirgule += "0.00";
         } else if (num.length == 1) {
             AvecVirgule += "0.0" + num;
         } else if (num.length == 2 && num > 0) {
             AvecVirgule += "0." + num;
         } else if (num.length == 2 && num < 0) {
             AvecVirgule += "-"+Math.abs(num/100);
         } else {
             AvecVirgule += num.substring(0, num.length - 2);
             AvecVirgule += ".";
             AvecVirgule += num.substring(num.length - 2, num.length);
         }
         return AvecVirgule;
       }

       function Calcule(form) {
         Selection = form.Article1.selectedIndex;
         form.NomArticle1.value=form.Article1.options[selection].text;
         PrixArticle=form.Article1.options[selection].value;
         form.Prix1.value=AjouteVirgule(PrixArticle);
         Selection = form.Quant1.selectedIndex;
         Stotal1 = form.Quant1.options[selection].value * form.Prix1.value;
         form.Montant1.value = AjouteVirgule(Stotal1);

         Selection = form.Article2.selectedIndex;
         form.NomArticle2.value=form.Article2.options[selection].text;
         PrixArticle=form.Article2.options[selection].value;
         form.Prix2.value=AjouteVirgule(PrixArticle);
         Selection = form.Quant2.selectedIndex;
         Stotal2 =form.Quant2.options[selection].value * form.Prix2.value;
         form.Montant2.value = AjouteVirgule(Stotal2);
         form.Montant1.value = AjouteVirgule(Stotal1);
         form.Montant2.value = AjouteVirgule(Stotal2);

         Total =(Stotal1+Stotal2);

         MontantTVA=Total*(1-1/1.055);
         MontantEuro=Total/6.55957;
         form.MontantTotal.value = AjouteVirgule(Total);
         form.MontantTotalEuro.value = AjouteVirgule(MontantEuro);

         form.TVA.value = AjouteVirgule(MontantTVA);
       }

       function Verifie(form) {
         if ((form.NomArticle1.value != "") && (form.Quant1.value == "")) {
           alert('Vous avez entre une Designation sans Quantite (ligne 1)')
         } else if ((form.NomArticle1.value == "") && (form.Quant1.value != "")) {
           alert('Vous avez entre une Quantite sans Designation (ligne 1)')
         } else if ((form.NomArticle2.value != "") && (form.Quant2.value == "")) {
           alert('Vous avez entre une Designation sans Quantite (ligne 2)')
         } else if ((form.NomArticle2.value == "") && (form.Quant2.value != "")) {
           alert('Vous avez entre une Quantite sans Designation (ligne 2)')
         } else {
           alert('Votre Bon de Commande a ete verifie avec succes')
         }
       }
       // ]]>
   </script>
 </head>
 <body>
   <h1 align="center"><b><u>BON DE COMMANDE</u></b></h1>
   <p align="left">
       "Les Enfants de Madagascar"<br />
       2 rue Peu Importe<br />
       12 345 VILLE<br />
       Tél/fax : 01.23.45.67.89
   </p>
   <div style="text-align:center">
       <form action="">
           <TABLE border=3 cellSpacing=3 CELLPADING="0" width="8" height="700" style="margin:auto;">
               <TBODY>
                   <TR bgColor=#ffffcc>
                       <TH align=middle colSpan=4 bgcolor="#FFFFFF" width="624"
                           height="23">Veuillez entrer vos coordonnees</TH>
                   </TR>
                   <TR>
                       <TD bgcolor="#FFFFFF" width="272" height="24">Nom</TD>
                       <TD colSpan=3 bgcolor="#FFFFFF" width="344" height="24"><INPUT
                           name=nom size=34></TD>
                   </TR>
                   <TR>
                       <TD bgcolor="#FFFFFF" width="272" height="24">Adresse</TD>
                       <TD colSpan=3 bgcolor="#FFFFFF" width="344" height="24"><INPUT
                           name=adresse size=34></TD>
                   </TR>
                   <TR>
                       <TD bgcolor="#FFFFFF" width="272" height="24">Code
                       postal + ville</TD>
                       <TD colSpan=3 bgcolor="#FFFFFF" width="344" height="24"><INPUT
                           name=ville size=34></TD>
                   </TR>
                   <TR>
                       <TD bgcolor="#FFFFFF" width="272" height="24">Pays</TD>
                       <TD colSpan=3 bgcolor="#FFFFFF" width="344" height="24"><INPUT
                           name=pays size=34 value=France></TD>
                   </TR>
                   <TR>
                       <TD bgcolor="#FFFFFF" width="272" height="33">Adresse
                       E-mail ou Telephone</TD>
                       <TD colSpan=3 bgcolor="#FFFFFF" width="344" height="33"><INPUT
                           name=email size=33 value=@></TD>
                   </TR>
                   <TR bgColor=#ffffcc>
                       <TH align=middle colSpan=4 bgcolor="#FFFFFF" width="624"
                           height="15"><font size="1">Choisissez un
                       article et saisissez une Quantite</font></TH>
                   </TR>
                   <TR bgColor=#ffffcc>
                       <TH bgcolor="#FFFFFF" width="272" height="23">Article</TH>
                       <TH bgcolor="#FFFFFF" width="116" height="23">Prix</TH>
                       <TH bgcolor="#FFFFFF" width="57" height="23">Qte</TH>
                       <TH bgcolor="#FFFFFF" width="155" height="23">Montant</TH>
                   </TR>
                   <!-- ********** Debut d affichage de la premiere ligne ********* -->
                   <TR align=right vAlign=center>
                       <TD align=left bgcolor="#FFFFFF" width="272" height="46">1
                       <SELECT name=Article1 onchange=Calcule(this.form) size="1">
                           <OPTION selected value=000></OPTION>
                           <OPTION value=150.00>MODELE_001</OPTION>
                           <OPTION value=160.00>Masque Sakalava</OPTION>
                           <OPTION value=80.00>Voiture</OPTION>
                           <OPTION value=100.00>T-shirt de l'association
                           XL</OPTION>
                           <OPTION value=70.00>Panneaux de Marqueterie(x2)</OPTION>
                           <OPTION value=150.00>Solitaire</OPTION>
                           <OPTION value=150.00>Djembe</OPTION>
                           <option value="50.00">Cendrier</option>
                           <option value="75.00">Girafe en raffia (taille
                           moyenne)</option>
                           <option value="150.00">Set de table</option>
                       </SELECT></TD>
                       <TD bgcolor=#FFFFFF width="116" height="46"><font
                           size="1">FF</font> <INPUT name=Prix1
                           onchange=Calcule(this.form) size=12></TD>
                       <TD width="57" height="46" bgcolor="#FFFFFF"><SELECT
                           name=Quant1 onchange=Calcule(this.form)>
                           <OPTION selected></OPTION>
                           <OPTION value=1>1</OPTION>
                           <OPTION value=2>2</OPTION>
                           <OPTION value=3>3</OPTION>
                           <OPTION value=4>4</OPTION>
                           <OPTION value=5>5</OPTION>
                           <OPTION value=6>6</OPTION>
                           <OPTION value=7>7</OPTION>
                           <OPTION value=8>8</OPTION>
                           <OPTION value=9>9</OPTION>
                           <OPTION value=10>10</OPTION>
                       </SELECT> <INPUT name=NomArticle1 type=hidden></TD>
                       <TD bgcolor=#FFFFFF width="155" height="46"><font
                           size="1">FF</font> <INPUT name=Montant1
                           onchange=Calcule(this.form) size=12></TD>
                   </TR>
                   <!-- ********** Debut d affichage de la deuxieme ligne ********* -->
                   <TR align=right vAlign=center>
                       <TD align=left bgcolor="#FFFFFF" width="272" height="46">2
                       <SELECT name=Article2 onchange=Calcule(this.form) size="1">
                           <OPTION selected value=000></OPTION>
                           <OPTION value=150.00>MODELE_001</OPTION>
                           <OPTION value=160.00>Masque Sakalava</OPTION>
                           <OPTION value=80.00>Voiture</OPTION>
                           <OPTION value=100.00>T-shirt de l'association
                           XL</OPTION>
                           <OPTION value=70.00>Panneaux de Marqueterie
                           (x2)</OPTION>
                           <OPTION value=150.00>Solitaire</OPTION>
                           <OPTION value=150.00>Djembe</OPTION>
                           <option value="50.00">Cendrier</option>
                           <option value="75.00">Girafe en raffia (taille
                           moyenne)</option>
                           <option value="150.00">Set de table</option>
                       </SELECT></TD>
                       <TD bgcolor=#FFFFFF width="116" height="46"><font
                           size="1">FF</font> <INPUT name=Prix2
                           onchange=Calcule(this.form) size=12></TD>
                       <TD width="57" height="46" bgcolor="#FFFFFF"><SELECT
                           name=Quant2 onchange=Calcule(this.form)>
                           <OPTION selected></OPTION>
                           <OPTION value=1>1</OPTION>
                           <OPTION value=2>2</OPTION>
                           <OPTION value=3>3</OPTION>
                           <OPTION value=4>4</OPTION>
                           <OPTION value=5>5</OPTION>
                           <OPTION value=6>6</OPTION>
                           <OPTION value=7>7</OPTION>
                           <OPTION value=8>8</OPTION>
                           <OPTION value=9>9</OPTION>
                           <OPTION value=10>10</OPTION>
                       </SELECT> <INPUT name=NomArticle2 type=hidden></TD>
                       <TD bgcolor=#FFFFFF width="155" height="46"><font
                           size="1">FF</font> <INPUT name=Montant2
                           onchange=Calcule(this.form) size=12></TD>
                   </TR>
                   <!-- ******* Debut d affichage du total ****** -->
                   <TR bgColor=#ffffcc>
                       <TD align=middle colSpan=3 bgcolor="#FFFFFF" width="461"
                           height="29">Frais de port (France Métropolitaine) :
                       <B>Gratuit</B></TD>
                       <TD align=right bgcolor="#FFFFFF" width="155" height="29">0.00
                       </TD>
                   </TR>
                   <TR>
                       <TD align=middle bgcolor=#FFFFFF colSpan=3 height="1"><B><font
                           size="2">NET A PAYER</font></B></TD>
                       <TD align=right bgcolor=#FFFFFF width="155" height="1"><font
                           size="1">FF</font> <INPUT align=right name=MontantTotal
                           onchange=Calcule(this.form) size=12></TD>
                   </TR>
                   <TR>
                       <TD align=middle colSpan=4 bgcolor="#FFFFFF" width="624"
                           height="27"><INPUT type=reset value=Reset>
                       <INPUT onclick=Calcule(this.form) type=button value=Recalcul>
                       <!-- <INPUT TYPE="button" VALUE="Vérification" ONCLICK="Verifie(this.form)"> -->
                       </TD>
                   </TR>
                   <TR>
                       <TD align=middle bgcolor=#FFFFFF colSpan=4 width="624"
                           height="50"><font size="1">Pour info, TVA
                       5,5 % FF </font> <INPUT name=TVA onchange=Calcule(this.form)
                           size=11> <font size="1">montant en EUROS
                       </font><INPUT name=MontantTotalEuro onchange=Calcule(this.form)
                           size=12></TD>
                   </TR>
               </TBODY>
           </TABLE>
       </form>
       <h6 style="text-align:center;">
       Cette page n'envoie aucune information électronique.
       Elle vous permet uniquement d'imprimer le bon de commande.
       </h6>
   </div>
</body>
</html>

Modifié par KewlCat
Ménage dans le code, suppression des infos trop perso, ...

Posté(e)

Je me suis permis d'ajouter certaines choses manquantes (balises

 dans ton post, balises manquantes dans le code, indentation, etc.).

Pour référence, ce code donne le résultat suivant :

flexi.png

Partant de ce code, si tu veux ajouter une colonne il faut refaire la structure du tableau : ajouter un élément <th></th> ou <td></td> aux lignes où tu voudras mettre du contenu (titre, champs, valeurs), et ajouter 1 à tous les "colspan" des <tr></tr> au-dessus et au-dessous

Est-ce que déjà, là, ça te pose un problème ?

 

Ensuite, étant obligé de gérer deux valeurs associées à chaque produit il faut arrêter d'utiliser les listes déroulantes pour n'y mettre que les prix. De toute façon, une liste de choix pour un produit ça ne devrait pas sélectionner autre chose qu'une référence dudit produit.

Du coup il te faut deux nouveaux tableaux en tête de fichier pour stocker respectivement les prix et les poids de tes articles (tabPrix[[i]<ref.article>[/i]] = [i]<prix.article>[/i]; et pareil pour un tableau tabPoids), puis modifier la fonction Calcule() pour qu'elle tape non plus sur les [i]value[/i] des options pour récupérer les prix mais sur le tableau tabPrix[[i]<ref. article sélectionné>[/i]].

Bref. Une fois le contenu en place et cette modification effectuée il faut ajouter le code Javascript permettant de gérer ces nouveaux champs :

* valorisation des champs en fonction des références produit sélectionnées

* recalcul des totaux

Tu suis toujours ?

 

Au fait, si on commençait par le commencement ? Comment veux-tu gérer ces poids, à quoi correspondent-il, sont-ils constants par article (liste déroulante) ou variables (champ de saisie), veux-tu ajouter une rubrique dans le récap, faut-il changer les frais de port en fonction du poids total, .... ?

Savoir où l'on va permet de déterminer plus précisément ce que l'on a à faire ;-)

 

Petite remarque au passage : tu n'as pas choisi le plus beau (comprendre "maintenable") ni le plus flexible des scripts de génération de bon de commande...

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...