Comment compresser mon code

flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 - 1 mars 2011 à 17:10
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024 - 1 mars 2011 à 23:44
bonjour a tous
voici un code que j avais trouve un peu par hasard et que j ai modifie a l aide de certains membres et avec un tout petit peu de ma main ...

mais il me reste une question étant donne que je dois y mettre +- 150 articles comment faire pour pas me retrouver avec un code de 150 kilomètres ....avec des boucles a mon avis
qui pourrait m aider a le réaliser svp

d avance un tout grand merci a tous
voici le code
<?php
/*ton script doit etre sur un hebergeur qui supporte le php 5 de préférence*/

/*remplace mailbidon@free.fr entre les doubles guillemets*/
$tonemail= "perroquet666@hotmail.com"; /**/

/*à toi de définir ta page de retour aprés envoi du mail*/
$site="http://www.google.com"; 

/*pas toucher*/
$headers  = "From: <$tonemail>\n";
$headers .= "Reply-To: $tonemail\n";
$headers .= "MIME-version: 1.0\n";
$headers .= "Content-type: text/html; charset= iso-8859-1\n";

$message="";

$sujet = "Commande depuis mon site http://???"; /*si tu veux mettre quelque chose*/


if(isset($_POST['sub']) && $_POST['sub']==="Precommander") {

foreach($_POST as $k => $v){ //$_POST['coucou'] devient $coucou
$send[]=strip_tags($v);
//echo $k.' : '.$v.'
'; 
}

foreach($send as $s){
$message.=$s."
";
}

    $message.="<hr>Le ".date('d-m-Y H:i:s')." par ip du client  : ".$_SERVER['REMOTE_ADDR']."<hr>";
      
    if(mail($tonemail,$sujet,$message,$headers)){
    
    echo 'votre commande à été enregistrée un mail de confirmation vous sera envoyé ... !';

/******* Vérification
foreach( $send as $value )
  echo $value . '
';
********/

    //$site="http://www.google.com"; /*à toi de définir ta page*/
    
    echo '
Revenir au site ['.$site.' ici]';
        
    exit;
    }else{
    echo 'PROBLEME FONCTION MAIL PHP';exit;
    }


}else{
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<head>

<style type="text/css">
  body {
    color: purple;
    background-color: #BCBCBC }

#chaussures {
        height: 275px;
        text-align: center;
        background-color: #F2C7F3;
         margin-left: auto;
        margin-right: auto;
  }
#titre {
        color: #FFFFFF;
        height: 25px;
        text-align: center;
        background-color: #D9348F;
         margin-left: auto;
        margin-right: auto;
  }



</style>

    <title>Formulaire</title>
    
    <script type="text/javascript">
    var plus_frais_de_port = false;
    var iPrix = 0;
    function AjouteVirgule(nombre, nb_decimal)
    {
      var num = Number(nombre);
      var AvecVirgule = num.toFixed(nb_decimal);
      return AvecVirgule;
    }
  
   var T_article = new Array(); // table des choses
   T_article[0] = new Array(  "0.00", "0.000" );
   T_article[1] = new Array("150.00", "2.300" ); // MODELE_001
   T_article[2] = new Array("160.00", "0.450" ); // Masque Sakalava
   T_article[3] = new Array( "80.00", "1200.000" ); // Voiture
   T_article[4] = new Array("100.00", "0.080" ); // T-shirt de l'association XL
   T_article[5] = new Array( "70.00", "0.200" ); // Panneaux de Marqueterie(x2)
   T_article[6] = new Array("150.00", "0.300" ); // Solitaire
   T_article[7] = new Array("150.00", "0.510" ); // Djembe
   T_article[8] = new Array( "50.00", "1.000" ); // Cendrier
   T_article[9] = new Array( "75.00", "0.100" ); // Girafe en raffia (taille moyenne)
   T_article[10] =new Array("150.00", "0.200" ); // Set de table
  
   function Calcule()
   {
     form=document.getElementById("F_COMMANDE" );
  
     // Calcul les montants
     Selection = form.Article1.selectedIndex;
     form.NomArticle1.value=form.Article1.options[Selection].text;
     NoArticle=form.Article1.options[Selection].value;
     // alert("1. NoArticle="+NoArticle);
     PrixArticle=T_article[NoArticle][0];
     form.Prix1.value=AjouteVirgule(PrixArticle,2);
     // alert("2. PrixArticle="+PrixArticle);
     Selection = form.Quant1.selectedIndex;
     Stotal1 = form.Quant1.options[Selection].value * form.Prix1.value;
     form.Montant1.value = AjouteVirgule(Stotal1,2);
  
     Selection = form.Article2.selectedIndex;
     form.NomArticle2.value=form.Article2.options[Selection].text;
     NoArticle=form.Article2.options[Selection].value;
     PrixArticle=T_article[NoArticle][0];
     form.Prix2.value=AjouteVirgule(PrixArticle,2);
      Selection = form.Quant2.selectedIndex;
     Stotal2 =form.Quant2.options[Selection].value * form.Prix2.value;
     form.Montant2.value = AjouteVirgule(Stotal2,2);
 
  Selection = form.Article3.selectedIndex;
     form.NomArticle3.value=form.Article3.options[Selection].text;
     NoArticle=form.Article3.options[Selection].value;
     PrixArticle=T_article[NoArticle][0];
     form.Prix3.value=AjouteVirgule(PrixArticle,2);
     Selection = form.Quant3.selectedIndex;
     Stotal3 = form.Quant3.options[Selection].value * form.Prix3.value;
     form.Montant3.value = AjouteVirgule(Stotal3,2);

     Selection = form.Article4.selectedIndex;
     form.NomArticle4.value=form.Article4.options[Selection].text;
     NoArticle=form.Article4.options[Selection].value;
     PrixArticle=T_article[NoArticle][0];
     form.Prix4.value=AjouteVirgule(PrixArticle,2);
     Selection = form.Quant4.selectedIndex;
     Stotal4 = form.Quant4.options[Selection].value * form.Prix4.value;
     form.Montant4.value = AjouteVirgule(Stotal4,2);

     Selection = form.Article5.selectedIndex;
     form.NomArticle5.value=form.Article5.options[Selection].text;
     NoArticle=form.Article5.options[Selection].value;
     PrixArticle=T_article[NoArticle][0];
     form.Prix5.value=AjouteVirgule(PrixArticle,2);
     Selection = form.Quant5.selectedIndex;
     Stotal5 = form.Quant5.options[Selection].value * form.Prix5.value;
     form.Montant5.value = AjouteVirgule(Stotal5,2);

     Selection = form.Article6.selectedIndex;
     form.NomArticle6.value=form.Article6.options[Selection].text;
     NoArticle=form.Article6.options[Selection].value;
     PrixArticle=T_article[NoArticle][0];
     form.Prix6.value=AjouteVirgule(PrixArticle,2);
     Selection = form.Quant6.selectedIndex;
     Stotal6 = form.Quant6.options[Selection].value * form.Prix6.value;
     form.Montant6.value = AjouteVirgule(Stotal6,2);

     Selection = form.Article7.selectedIndex;
     form.NomArticle7.value=form.Article7.options[Selection].text;
     NoArticle=form.Article7.options[Selection].value;
     PrixArticle=T_article[NoArticle][0];
     form.Prix7.value=AjouteVirgule(PrixArticle,2);
     Selection = form.Quant7.selectedIndex;
     Stotal7 = form.Quant7.options[Selection].value * form.Prix7.value;
     form.Montant7.value = AjouteVirgule(Stotal7,2);


     Total =(Stotal1+Stotal2+Stotal3+Stotal4+Stotal5+Stotal6+Stotal7);
     if(plus_frais_de_port true) Total Total + iPrix;
     form.MontantTotal.value = AjouteVirgule(Total,2);
  
     // Calcul les poids
     Selection = form.Article1.selectedIndex;
     NoArticle=form.Article1.options[Selection].value;
     Selection = form.Quant1.selectedIndex;
     Stotal1 = form.Quant1.options[Selection].value * T_article[NoArticle][1];
     form.Poids1.value = AjouteVirgule(Stotal1,3);
  
     Selection = form.Article2.selectedIndex;
     NoArticle=form.Article2.options[Selection].value;
     Selection = form.Quant2.selectedIndex;
     Stotal2 = form.Quant2.options[Selection].value * T_article[NoArticle][1];
     form.Poids2.value = AjouteVirgule(Stotal2,3);
  
     Selection = form.Article3.selectedIndex;
     NoArticle=form.Article3.options[Selection].value;
     Selection = form.Quant3.selectedIndex;
     Stotal3 = form.Quant3.options[Selection].value * T_article[NoArticle][1];
     form.Poids3.value = AjouteVirgule(Stotal3,3);

     Selection = form.Article4.selectedIndex;
     NoArticle=form.Article4.options[Selection].value;
     Selection = form.Quant4.selectedIndex;
     Stotal4 = form.Quant4.options[Selection].value * T_article[NoArticle][1];
     form.Poids4.value = AjouteVirgule(Stotal4,3);

     Selection = form.Article5.selectedIndex;
     NoArticle=form.Article5.options[Selection].value;
     Selection = form.Quant5.selectedIndex;
     Stotal5 = form.Quant5.options[Selection].value * T_article[NoArticle][1];
     form.Poids5.value = AjouteVirgule(Stotal5,3);

     Selection = form.Article6.selectedIndex;
     NoArticle=form.Article6.options[Selection].value;
     Selection = form.Quant6.selectedIndex;
     Stotal6 = form.Quant6.options[Selection].value * T_article[NoArticle][1];
     form.Poids6.value = AjouteVirgule(Stotal6,3);

     Selection = form.Article7.selectedIndex;
     NoArticle=form.Article7.options[Selection].value;
     Selection = form.Quant7.selectedIndex;
     Stotal7 = form.Quant7.options[Selection].value * T_article[NoArticle][1];
     form.Poids7.value = AjouteVirgule(Stotal7,3);

Total =(Stotal1+Stotal2+Stotal3+Stotal4+Stotal5+Stotal6+Stotal7);


     form.PoidsTotal.value = AjouteVirgule(Total,3);
   }
   
     function majPrixPort(oForm)
{
     Calcule();
  var iPoids = parseFloat(oForm.PoidsTotal.value);
      
    if(oForm.envoi[0].checked) // si "la poste" est cochée
    {
      iPrix = 5;
      if (iPoids > 5) iPrix = 10;
    }else if(oForm.envoi[1].checked)
    { // si "kiala" est coché
        iPrix 4; // frais de port 4€
      var nombre_total_article = parseInt(oForm.Quant1.options[oForm.Quant1.selectedIndex].value) + parseInt(oForm.Quant2.options[oForm.Quant2.selectedIndex].value) + parseInt(oForm.Quant3.options[oForm.Quant3.selectedIndex].value) + parseInt(oForm.Quant4.options[oForm.Quant4.selectedIndex].value) + parseInt(oForm.Quant5.options[oForm.Quant5.selectedIndex].value) + parseInt(oForm.Quant6.options[oForm.Quant6.selectedIndex].value) + parseInt(oForm.Quant7.options[oForm.Quant7.selectedIndex].value);
      if(nombre_total_article > 2) iPrix = 0; //sauf si il y a plus de 2 articles, alors c'est gratuit
    }else
    {
          iPrix = 0;
    }
    
    AjouteVirgule(iPrix,3);
    oForm.prix_port.value = iPrix;
    plus_frais_de_port = true;
    Calcule();
}
    function Verifie(aBC)
   {
   if(aBC.nom.value == ""){
        alert('Vous n\'avez pas renseign\351 votre nom.');
        return false;
   }else if(aBC.prenom.value == ""){
        alert('Vous n\'avez pas renseign\351 votre prenom.'); 
        return false;
   }else if(aBC.adresse.value == ""){
        alert('Vous n\'avez pas renseign\351 votre adresse.'); 
        return false;
   }else if(aBC.code_postal.value == ""){
        alert('Vous n\'avez pas renseign\351 votre code postal.'); 	
        return false;
   }else if(aBC.ville.value == ""){
        alert('Vous n\'avez pas renseign\351 votre ville .'); 	
        return false;
   }else if(aBC.telephone.value == ""){
        alert('Vous n\'avez pas renseign\351 votre numero de telephone .'); 		
        return false;
   }else if(aBC.pays.value == ""){
        alert('Vous n\'avez pas renseign\351 votre pays.');
        return false;
   }else if(aBC.email.value == ""){
        alert('Vous n\'avez pas renseign\351 votre email.'); return false;
   }else{
     var regMail = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');
     // var regCP = /^[0-9]{4}$/; //Vérif code postal benelux
     if(regMail.test(aBC.email.value))
 {
return true;
 }else
 {
        alert('Vous devez renseign\351 une adresse e-mail corecte.');
return false;
 }

     /*if(regCP.test(aBC.email.value)) ///////////Verif Code Postal Benelux
    {
        return true;
    }else
    {
        alert('Vous devez renseign\351 un Code postal correct !');
        document.ex.cp.focus();
        return false;
    }*/
   }
     }
   </SCRIPT>
   <META content="text/html; charset=windows-1252" http-equiv="Content-Type">
</head>
   

  Accueil  </center>,
  Mode de paiement </center>,
  Questions</center>,
 Pour commander</center>,
 Espace infos</center>,
 Nos chaussures</center>

   
    <CENTER>
    
    <center>Nos chaussures</center>

TALON AIGUILLE POINTURE 35

TALON AIGUILLE POINTURE 36

TALON AIGUILLE POINTURE 37

TALON AIGUILLE POINTURE 38

TALON AIGUILLE POINTURE 39

TALON AIGUILLE POINTURE 40

TALON AIGUILLE POINTURE 41

<center>Inscription a la newsletter </center>

<center></center>
<center><form target="_blank" method="post" action="http://www.canalblog.com/cf/blogsubscribe.cfm?bid=476894" id="newsletter" name="newsletter">

</form></center>

<center>Nos promotions </center>

<center></center>
<center>

</center>,

<form id=\"F_COMMANDE\" action=\"http://essai2.net63.net/poi.php\" onSubmit=\"return Verifie(this)\" method=\"post\">

 BON DE COMMANDE  |
,

----

Veuillez entrer vos coordonnees |

----

Nom,
,

----

Prenom,
,

----

Adresse E-mail,
,

----

Adresse,
,

----

Code postal,
,

----

Numero de téléphone,
,

----

Ville,
,

----

Pays,
,

----

Votre point kiala
Pour le trouver cliquer ici ,
,

----

Choisissez un article et saisissez une Quantite |

----

Article |
Prix |
Qte |
Montant |

----

1<select size ="1" onchange="majPrixPort(this.form);" name="Article1">
<option value="0" selected=""></option>
<option value="1">MODELE_001</option>
<option value="2">Masque Sakalava</option>
<option value="3">Voiture</option>
<option value="4">T-shirt de l'association XL</option>
<option value="5">Panneaux de Marqueterie(x2)</option>
<option value="6">Solitaire</option>
<option value="7">Djembe</option>
<option value="8">Cendrier</option>
<option value="9">Girafe en raffia (taille moyenne)</option>
<option value="10">Set de table</option>
</select>,
€ ,
<select onchange="majPrixPort(this.form);" name="Quant1"><option selected="" value="0"></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>
,

€ ,

----

2<select size="1" onchange="majPrixPort(this.form);" name="Article2">
<option value="0" selected=""></option>
<option value="1">MODELE_001</option>
<option value="2">Masque Sakalava</option>
<option value="3">Voiture</option>
<option value="4">T-shirt de l'association XL</option>
<option value="5">Panneaux de Marqueterie (x2)</option>
<option value="6">Solitaire</option>
<option value="7">Djembe</option>
<option value="8">Cendrier</option>
<option value="9">Girafe en raffia (taille moyenne)</option>
<option value="10">Set de table</option>
</select>,

€,
<select onchange="majPrixPort(this.form);" name="Quant2">
<option selected="" value="0"></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>
,
€ ,

----

3<select size="1" onchange="majPrixPort(this.form);" name="Article3">
<option value="0" selected=""></option>
<option value="1">MODELE_001</option>
<option value="2">Masque Sakalava</option>
<option value="3">Voiture</option>
<option value="4">T-shirt de l'association XL</option>
<option value="5">Panneaux de Marqueterie(x2)</option>
<option value="6">Solitaire</option>
<option value="7">Djembe</option>
<option value="8">Cendrier</option>
<option value="9">Girafe en raffia (taille moyenne)</option>
<option value="10">Set de table</option>
</select>,
€ ,
<select onchange="majPrixPort(this.form);" name="Quant3">
<option selected="" value="0"></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>
,
€ ,

----

4<select size="1" onchange="majPrixPort(this.form);" name="Article4">
<option value="0" selected=""></option>
<option value="1">MODELE_001</option>
<option value="2">Masque Sakalava</option>
<option value="3">Voiture</option>
<option value="4">T-shirt de l'association XL</option>
<option value="5">Panneaux de Marqueterie(x2)</option>
<option value="6">Solitaire</option>
<option value="7">Djembe</option>
<option value="8">Cendrier</option>
<option value="9">Girafe en raffia (taille moyenne)</option>
<option value="10">Set de table</option>
</select>,
€ ,
<select onchange="majPrixPort(this.form);" name="Quant4">
<option selected="" value="0"></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>
,
€ ,

----

5<select size="1" onchange="majPrixPort(this.form);" name="Article5">
<option value="0" selected=""></option>
<option value="1">MODELE_001</option>
<option value="2">Masque Sakalava</option>
<option value="3">Voiture</option>
<option value="4">T-shirt de l'association XL</option>
<option value="5">Panneaux de Marqueterie(x2)</option>
<option value="6">Solitaire</option>
<option value="7">Djembe</option>
<option value="8">Cendrier</option>
<option value="9">Girafe en raffia (taille moyenne)</option>
<option value="10">Set de table</option>
</select>,
€,
<select onchange="majPrixPort(this.form);" name="Quant5">
<option selected="" value="0"></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>
,
€ ,
----

6<select size="1" onchange="majPrixPort(this.form);" name="Article6">
<option value="0" selected=""></option>
<option value="1">MODELE_001</option>
<option value="2">Masque Sakalava</option>
<option value="3">Voiture</option>
<option value="4">T-shirt de l'association XL</option>
<option value="5">Panneaux de Marqueterie(x2)</option>
<option value="6">Solitaire</option>
<option value="7">Djembe</option>
<option value="8">Cendrier</option>
<option value="9">Girafe en raffia (taille moyenne)</option>
<option value="10">Set de table</option>
</select>,
€,
<select onchange="majPrixPort(this.form);" name="Quant6">
<option selected="" value="0"></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>,
€ ,

----

7<select size="1" onchange="majPrixPort(this.form);" name="Article7">
<option value="0" selected=""></option>
<option value="1">MODELE_001</option>
<option value="2">Masque Sakalava</option>
<option value="3">Voiture</option>
<option value="4">T-shirt de l'association XL</option>
<option value="5">Panneaux de Marqueterie(x2)</option>
<option value="6">Solitaire</option>
<option value="7">Djembe</option>
<option value="8">Cendrier</option>
<option value="9">Girafe en raffia (taille moyenne)</option>
<option value="10">Set de table</option>
</select>,
€,
<select onchange="javascript:majPrixPort( this.form);" name="Quant7">
<option selected="" value="0"></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>
,
€ ,

----
Frais de port avec kiala :Gratuit,
0.00,

----

Choississez votre mode de livraison :
<label for="by_poste">par la poste</label><label for="by_kiala">par kiala</label>,
,

----

NET A PAYER,
€ ,

----

  <!--   -->,



    </form>
   </CENTER>
   
   </HTML>

9 réponses

007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 4
1 mars 2011 à 18:16
Faire de la programmation avec des boucles avec, par exemple (et sauf erreur de ma part), le calcul des montants suivant.

Total=0;
for (i=1;i<8;i++){stotal=0;
   Selection = form["Article"+i].selectedIndex;
   form["NomArticle"+i].value=form["Article"+i].options[Selection].text;
   NoArticle=["Article"+i].options[Selection].value;
   PrixArticle=T_article[NoArticle][0];
   form.["Prix"+i].value=AjouteVirgule(PrixArticle,2);
   Selection = form["Quant"+i].selectedIndex;
   Stotali=form["Quant"+i].options[Selection].value*form.Prix7.value;
   form["Montant"+7].value = AjouteVirgule(Stotali,2);
   Total-=-Stotal;
}

Remarque on retranche l'opposé pour être certain de faire une addition et non pas une concaténation (variante possible avec parseInt()).
0
007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 4
1 mars 2011 à 18:25
Ensuite, utiliser les CSS avec un
td {background-color:#fff;text-align:center} dans la balise style ou même une coloration du fond du tableau avec des classes particulières pour certaines lignes...
0
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024
1 mars 2011 à 18:39
un très grand merci pour l aide

donc j imbrique juste ce morceau de code après


     form=document.getElementById("F_COMMANDE" );




et dans ce cas il ne me reste plus qu a ajouter mes articles a la suite de ceci

   T_article[0] = new Array(  "0.00", "0.000" );
   T_article[1] = new Array("150.00", "2.300" ); // MODELE_001
   T_article[2] = new Array("160.00", "0.450" ); // Masque Sakalava
   T_article[3] = new Array( "80.00", "1200.000" ); // Voiture
   T_article[4] = new Array("100.00", "0.080" ); // T-shirt de l'association XL
   T_article[5] = new Array( "70.00", "0.200" ); // Panneaux de Marqueterie(x2)
   T_article[6] = new Array("150.00", "0.300" ); // Solitaire
   T_article[7] = new Array("150.00", "0.510" ); // Djembe
   T_article[8] = new Array( "50.00", "1.000" ); // Cendrier
   T_article[9] = new Array( "75.00", "0.100" ); // Girafe en raffia (taille moyenne)
   T_article[10] =new Array("150.00", "0.200" ); // Set de table

0
007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 4
1 mars 2011 à 19:18
La boucle proposée se substitue seulement aux 7 « paragraphes » quasi-identiques situés entre

 form=document.getElementById("F_COMMANDE" );
     // Calcul les montants


et les lignes suivantes

if(plus_frais_de_port true) Total Total + iPrix;
     form.MontantTotal.value = AjouteVirgule(Total,2);


Ma proposition contient d'ailleurs plusieurs erreurs : les variables stotal, Stotal et Stotali ne font qu'une (et donc devraient avoir le même nom) et à l'avant dernière ligne le form["Montant"+7].value est à remplacer par un form["Montant"+i].value.

Il convient, ensuite de faire à peu près la même chose pour les poids...
0

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

Posez votre question
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024
1 mars 2011 à 20:09
un tout grand merci mais cela ne fonctionne pas sniffff

voici mon code modifie


 T_article[9] = new Array( "75.00", "0.100" ); // Girafe en raffia (taille moyenne)
   T_article[10] =new Array("150.00", "0.200" ); // Set de table
  
   function Calcule()
   {
     form=document.getElementById("F_COMMANDE" );
  
    Total=0;
for (i=1;i<8;i++){stotal=0;
   Selection = form["Article"+i].selectedIndex;
   form["NomArticle"+i].value=form["Article"+i].options[Selection].text;
   NoArticle=["Article"+i].options[Selection].value;
   PrixArticle=T_article[NoArticle][0];
   form.["Prix"+i].value=AjouteVirgule(PrixArticle,2);
   Selection = form["Quant"+i].selectedIndex;
   Stotal=form["Quant"+i].options[Selection].value*form.Prix7.value;
   form["Montant"+i].value = AjouteVirgule(Stotal,2);
   Total-=-Stotal;
}


     
     if(plus_frais_de_port true) Total Total + iPrix;
     form.MontantTotal.value = AjouteVirgule(Total,2);
  


0
007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 4
1 mars 2011 à 22:08
Il y a encore un stotal en première ligne au lieu d'un Stotal qu'il convient de remettre à zéro.

Sinon, les objets javascript étant aussi des tableaux associatifs, le principe consiste à remplacer les form.Aticle1, 2 3 4 ou 7 par des form["Article"+i]...

Cela doit fonctionner. Peut-être conviendrait-il de disposer quelques alert pour voir les bugs.
0
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024
1 mars 2011 à 22:21
merci pour la réponse c est très gentil de bien vouloir m aider, mais je ne vois pas ce
stotal en première ligne au lieu d'un Stotal ?

avec al modifi que l on a fait j ai supprimer tout ce morceau la


 // Calcul les montants
     Selection = form.Article1.selectedIndex;
     form.NomArticle1.value=form.Article1.options[Selection].text;
     NoArticle=form.Article1.options[Selection].value;
     // alert("1. NoArticle="+NoArticle);
     PrixArticle=T_article[NoArticle][0];
     form.Prix1.value=AjouteVirgule(PrixArticle,2);
     // alert("2. PrixArticle="+PrixArticle);
     Selection = form.Quant1.selectedIndex;
     Stotal1 = form.Quant1.options[Selection].value * form.Prix1.value;
     form.Montant1.value = AjouteVirgule(Stotal1,2);
  
     Selection = form.Article2.selectedIndex;
     form.NomArticle2.value=form.Article2.options[Selection].text;
     NoArticle=form.Article2.options[Selection].value;
     PrixArticle=T_article[NoArticle][0];
     form.Prix2.value=AjouteVirgule(PrixArticle,2);
      Selection = form.Quant2.selectedIndex;
     Stotal2 =form.Quant2.options[Selection].value * form.Prix2.value;
     form.Montant2.value = AjouteVirgule(Stotal2,2);
 
  Selection = form.Article3.selectedIndex;
     form.NomArticle3.value=form.Article3.options[Selection].text;
     NoArticle=form.Article3.options[Selection].value;
     PrixArticle=T_article[NoArticle][0];
     form.Prix3.value=AjouteVirgule(PrixArticle,2);
     Selection = form.Quant3.selectedIndex;
     Stotal3 = form.Quant3.options[Selection].value * form.Prix3.value;
     form.Montant3.value = AjouteVirgule(Stotal3,2);

     Selection = form.Article4.selectedIndex;
     form.NomArticle4.value=form.Article4.options[Selection].text;
     NoArticle=form.Article4.options[Selection].value;
     PrixArticle=T_article[NoArticle][0];
     form.Prix4.value=AjouteVirgule(PrixArticle,2);
     Selection = form.Quant4.selectedIndex;
     Stotal4 = form.Quant4.options[Selection].value * form.Prix4.value;
     form.Montant4.value = AjouteVirgule(Stotal4,2);

     Selection = form.Article5.selectedIndex;
     form.NomArticle5.value=form.Article5.options[Selection].text;
     NoArticle=form.Article5.options[Selection].value;
     PrixArticle=T_article[NoArticle][0];
     form.Prix5.value=AjouteVirgule(PrixArticle,2);
     Selection = form.Quant5.selectedIndex;
     Stotal5 = form.Quant5.options[Selection].value * form.Prix5.value;
     form.Montant5.value = AjouteVirgule(Stotal5,2);

     Selection = form.Article6.selectedIndex;
     form.NomArticle6.value=form.Article6.options[Selection].text;
     NoArticle=form.Article6.options[Selection].value;
     PrixArticle=T_article[NoArticle][0];
     form.Prix6.value=AjouteVirgule(PrixArticle,2);
     Selection = form.Quant6.selectedIndex;
     Stotal6 = form.Quant6.options[Selection].value * form.Prix6.value;
     form.Montant6.value = AjouteVirgule(Stotal6,2);

     Selection = form.Article7.selectedIndex;
     form.NomArticle7.value=form.Article7.options[Selection].text;
     NoArticle=form.Article7.options[Selection].value;
     PrixArticle=T_article[NoArticle][0];
     form.Prix7.value=AjouteVirgule(PrixArticle,2);
     Selection = form.Quant7.selectedIndex;
     Stotal7 = form.Quant7.options[Selection].value * form.Prix7.value;
     form.Montant7.value = AjouteVirgule(Stotal7,2);


     Total =(Stotal1+Stotal2+Stotal3+Stotal4+Stotal5+Stotal6+Stotal7);



0
007Julien Messages postés 276 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 8 janvier 2014 4
1 mars 2011 à 23:25
Atant pour moi, inutile d'initialiser Stotal qui est simplement repris deux fois dans la boucle, par contre il restait encore un form.Prix7 qu'il faut remplacer par un form["Prix"+7]. ce code devrait, enfin, donner satisfaction.

Total=0;
for (i=1;i<8;i++){
   Selection = form["Article"+i].selectedIndex;
   form["NomArticle"+i].value=form["Article"+i].options[Selection].text;
   NoArticle=["Article"+i].options[Selection].value;
   PrixArticle=T_article[NoArticle][0];
   form.["Prix"+i].value=AjouteVirgule(PrixArticle,2);
   Selection = form["Quant"+i].selectedIndex;
   Stotal=form["Quant"+i].options[Selection].value*form["Prix"+i].value;
   form["Montant"+i].value = AjouteVirgule(Stotal,2);
   Total-=-Stotal;
}
0
flexi2202 Messages postés 3795 Date d'inscription lundi 14 mars 2011 Statut Membre Dernière intervention 21 avril 2024
1 mars 2011 à 23:44
merci et encore merci mais cela ne fonctionne toujours pas
car dans le formulaire lorsque je choisis un article le prix n apparait pas ,alors qu avant oui

merci pour ton aide
0
Rejoignez-nous