Formulaire de calcul en HTML/JavaScript

Formulaire de calcul en HTML/JavaScript - Javascript/Node.js - Programmation

Marsh Posté le 19-05-2017 à 21:26:51    

Bonjour,  
le projet était de faire un formulaire de calcul en HTML/JavaScript
se formulaire sert à calculer des quantités d'engrais liquide, mélanger avec une certaine quantité d'eau et à pulvériser sur une certaine surface.
 
Voici mon formulaire de calcul
http://bookgazon.hebergratuit.net/new2.php
http://zupimages.net/up/17/20/2y0e.jpg
 
après avoir parcouru et poser la question sur une dizaine de forum... seul une personne m'a fait se code
 

Code :
  1. <!DOCTYPE html>
  2. <html>
  3.         <head>
  4.   <style type="text/css">
  5.   h3 {color:red}
  6.   h4 {color:blue}
  7.   body {background-image:url('herbe.jpg');}
  8.   </style>
  9.   <script>
  10.    var produits = [
  11.    {'produit':'Délectose','quantite':5,'surface':10},
  12.    {'produit':'Briamide','quantite':3.5,'surface':5},
  13.    {'produit':'Cortofade','quantite':4,'surface':17}
  14.    ];
  15.    var quantite = 0;
  16.    var surface  = 0;
  17.    function creeListe() {
  18.     var html = "";
  19.     html = option ="<option value='x'>Sélectionner un produit</option>";
  20.     for(var i=0;i<produits.length;i++) {
  21.      var option ="<option value='"+i+"'>"+produits[i].produit+"</option>";
  22.      html=html+option;
  23.     }
  24.     document.getElementById('produit').innerHTML = html;
  25.    }
  26.    function init(value) {
  27.        quantite = 0;
  28.     surface  = 0;
  29.     var xcp = document.getElementById('cp').value;
  30.     var xst = document.getElementById('st').value;   
  31.     document.getElementById('info').innerHTML = "<br/>";
  32.     if (value!="x" ) {
  33.      quantite = produits[value].quantite;
  34.      surface  = produits[value].surface;     
  35.      document.getElementById('info').innerHTML = "Dosage = "+quantite+" ml par litre et 1 litre pour "+surface+" m2";
  36.     }
  37.     document.getElementById('resultat').innerHTML = '';
  38.     if (xcp != 0 && xst != 0) {
  39.      calcul();
  40.     }
  41.    }
  42.    function calcul() {
  43.     var idProduit = document.getElementById('produit').value;
  44.     if ( idProduit== "x" ) {
  45.      alert("Sélectionner un produit !!!" );
  46.      return;
  47.     }
  48.     if (isNaN(document.getElementById('cp').value)) {
  49.      alert("Contenance incorrecte !!!" );
  50.      return;   
  51.     }
  52.     if (document.getElementById('cp').value <= 0) {
  53.      alert("Contenance incorrecte !!!" );
  54.      return;   
  55.     }
  56.     if (isNaN(document.getElementById('st').value)) {
  57.      alert("Surface terrain incorrecte !!!" );
  58.      return;   
  59.     }   
  60.     if (document.getElementById('st').value <= 0) {
  61.      alert("Surface terrain incorrecte !!!" );
  62.      return;   
  63.     }
  64.     var xcp = document.getElementById('cp').value;
  65.     var xst = document.getElementById('st').value;   
  66.     var a         = document.getElementById('resultat');   
  67.     a.innerHTML   = "<hr/>";
  68.     // dosage produit pour un m2
  69.     var dosage1M2 = quantite / surface;
  70.     // dosage produit total     
  71.     var dose      = dosage1M2 * xst;
  72.     var x         = parseInt(dose*100)/100;
  73.     //a.innerHTML   = a.innerHTML + 'Dose totale de '+produits[idProduit].produit+" = "+x+" ml<br/>";
  74.     // nombre de litres total
  75.     var litres    = xst / surface;
  76.     var y         = parseInt(litres*100)/100;
  77.     //a.innerHTML   = a.innerHTML + "Quantité totale d'eau = "+y+" L<br/>";
  78.     // nombre de pulvérisateurs     
  79.     //a.innerHTML   = a.innerHTML + 'Prévoir :<br/>';
  80.     var pulve     = y/xcp;
  81.     // Nombre de pulvérisateurs complets
  82.     var pulComp   = parseInt(pulve);
  83.     if (pulComp != 0) {
  84.      var zC = quantite * xcp;
  85.      libelle = pulComp == 1 ? "pulvérisateur" : "pulvérisateurs";
  86.      //a.innerHTML   = a.innerHTML + "* "+pulComp+" "+libelle+" de chacun "+xcp+" L et "+zC+" ml de "+produits[idProduit].produit+"<br/>";
  87.     }
  88.     // Pulvérisateur partiel
  89.     var pulPart   = pulve - pulComp;
  90.     if (pulPart != 0) {
  91.      var w = pulPart * xcp * 100;
  92.      w = Math.round(w,2) / 100;         
  93.      var z = w * quantite * 100;
  94.      z = Math.round(z,2) / 100;   
  95.      //a.innerHTML   = a.innerHTML + "* 1 pulvérisateur de "+w+" L et "+z+" ml de "+produits[idProduit].produit+"<br/>";
  96.     }
  97.     //------- Mélange à faire comme ceci
  98.     a.innerHTML   = a.innerHTML + "<hr/>";
  99.     a.innerHTML   = a.innerHTML + "<h3 color='red'>Mélange à faire comme ceci :</h3>"; 
  100.     if (pulComp != 0) {
  101.      libelle       = pulComp == 1 ? "Dans le pulvérisateur rempli complètement/" : "Dans chacun des "+pulComp+" pulvérisateurs remplis complètement:";
  102.      a.innerHTML   = a.innerHTML + "<h4>"+libelle+"</h4>";   
  103.      a.innerHTML   = a.innerHTML + "Litre(s) d'eau à mettre :<br/>";
  104.      a.innerHTML   = a.innerHTML + "<input type='text' disabled  value='"+xcp+" L'/><br/>";
  105.      a.innerHTML   = a.innerHTML + "Millilitre(s) de "+produits[idProduit].produit+" à mettre :<br/>";
  106.      a.innerHTML   = a.innerHTML + "<input type='text' disabled  value='"+zC+" ml'/><br/>";   
  107.      a.innerHTML   = a.innerHTML + "Surface couverte en m2 :<br/>";
  108.      xSurface      = surface * xcp;
  109.      a.innerHTML   = a.innerHTML + "<input type='text' disabled  value='"+xSurface+" m2'/><br/>";   
  110.     }
  111.     if (pulPart != 0) {
  112.      a.innerHTML   = a.innerHTML + "<h4>Dans le pulvérisateur rempli partiellement:</h4>";   
  113.      a.innerHTML   = a.innerHTML + "Litre(s) d'eau à mettre :<br/>";
  114.      a.innerHTML   = a.innerHTML + "<input type='text' disabled  value='"+w+" L'/><br/>";
  115.      a.innerHTML   = a.innerHTML + "Millilitre(s) de "+produits[idProduit].produit+" à mettre :<br/>";
  116.      a.innerHTML   = a.innerHTML + "<input type='text' disabled  value='"+z+" ml'/><br/>";   
  117.      a.innerHTML   = a.innerHTML + "Surface couverte en m2 :<br/>";
  118.      xSurface      = surface * w;
  119.      a.innerHTML   = a.innerHTML + "<input type='text' disabled  value='"+xSurface+" m2'/><br/>";
  120.     }
  121.     //------- Quantité pour couvrir le terrain
  122.     a.innerHTML   = a.innerHTML + "<hr/>";
  123.     a.innerHTML   = a.innerHTML + "<h3 color='red'>Quantité pour couvrir votre terrain :</h3>";
  124.     // Eau
  125.     a.innerHTML   = a.innerHTML + "Quantité d'eau en litres :<br/>";
  126.     a.innerHTML   = a.innerHTML + "<input type='text' disabled value='"+y+" L'/><br/>";
  127.     // Produit
  128.     a.innerHTML   = a.innerHTML + "Quantité de produit en millilitres :<br/>";
  129.     a.innerHTML   = a.innerHTML + "<input type='text' disabled value='"+x+" ml'/><br/>"; 
  130.     // Nombre de pulvérisateurs
  131.     a.innerHTML   = a.innerHTML + "Nombre de pulvérisateurs :<br/>";   
  132.     if (pulComp != 0) {
  133.      libelle = pulComp == 1 ? "pulvérisateur" : "pulvérisateurs";
  134.      a.innerHTML   = a.innerHTML + "- "+pulComp+" "+libelle+" de "+xcp+" L<br/>";
  135.     }
  136.     // Pulvérisateur partiel
  137.     var pulPart   = pulve - pulComp;
  138.     if (pulPart != 0) {
  139.      var w = pulPart * xcp * 100;
  140.      w = Math.round(w,2) / 100;         
  141.      var z = w * quantite * 100;
  142.      z = Math.round(z,2) / 100;   
  143.      a.innerHTML   = a.innerHTML + "- 1 pulvérisateur de "+w+" L <br/>";
  144.     }   
  145.    }
  146.   </script>
  147.         </head>
  148.         <body onload="creeListe()" style="font-family:verdana">
  149.    <table align="center" width="60%" bgcolor="lightgray" height="1300">
  150.    <tr><td valign="top">
  151.             <h2>Calcul</h2>
  152.    <select id="produit" onchange="init(this.value)">
  153.    </select>
  154.    <div id="info">
  155.     <br/>
  156.    </div> 
  157.    <br/><br/><br/>
  158.    <table>
  159.     <tr>
  160.      <td>Contenance pulvérisateur (L)</td>
  161.      <td>:</td>
  162.      <td><input type="text" id="cp" value="0" /><br/></td>
  163.     </tr>
  164.     <tr>
  165.      <td>Surface Terrain (m2)</td>
  166.      <td>:</td>
  167.      <td><input type="text" id="st" value="0" /><br/></td>
  168.     </tr>   
  169.    </table>
  170.    <input type="button" value="Valider" onclick="calcul();"/>
  171.    <div id="resultat">
  172.    </div>
  173.    </td></tr>
  174.    </table>
  175.         </body>
  176. </html>

sauf que cette personne a fait le code à ça façon et ne la pas intégrer aux miens  
donc je me retrouve avec un style de page qui ne ressemble pas trop au miens
http://bookgazon.hebergratuit.net/new1.php
 
Voici le style de la page avec sont code
http://zupimages.net/up/17/20/zpv6.jpg
 
c'est sympa de sa part j'en suis conscient surtout que sont code évite les erreurs de calcul de se style la
 
http://zupimages.net/up/17/20/ococ.jpg  
 
mais visuellement c'était pas se que j'attendais  
je lui est demander si il serait possible d'intégrer sont code dans le mien histoire d'avoir ses fonctions de calcul mais avec la présentation de mon formulaire
mais il m'a répondu que je chercher trop dans le détail et que sont code été très bien ( sympa !  :( )  
 
de plus avec sont code.. quand ont arrive sur la page il s'affiche seulement cette parti
 
http://zupimages.net/up/17/20/ktzw.jpg
 
puis une fois avoir choisi le produit dans la liste puis avoir rempli les champs... ont clique sur Valider...
et c'est seulement quand ont a cliquer sur Valider que les champs résultats s'affiche
http://bookgazon.hebergratuit.net/new1.php
 
hors moi dans mon formulaire  
http://bookgazon.hebergratuit.net/new2.php
les cases s'affiche vide mais ont les vois quand même
 
je comprend pas pourquoi il a voulu caché les champs de résultat ( image ci-dessous ) et affichés les champs seulement qu'après avoir cliquer sur valider
 
http://zupimages.net/up/17/20/qqbp.jpg
 
franchement au début j'était content et j'essayer de comprendre sont code
mais au bout de 2 semaines à entendre des critiques et à me creuser le crane jusqu'à la migraine avec les yeux en feu je commence a perdre espoirs
 
je m'en remet à vous cher programmeurs si vous pouvez m'aider se serait vraiment géant car pour le moment le morale n'y est pas

Message cité 1 fois
Message édité par asp2p le 19-05-2017 à 21:34:55
Reply

Marsh Posté le 19-05-2017 à 21:26:51   

Reply

Marsh Posté le 19-05-2017 à 22:36:16    

asp2p a écrit :

le projet était de faire un formulaire de calcul en HTML/JavaScript
[...]
après avoir parcouru et poser la question sur une dizaine de forum... seul une personne m'a fait se code

Et ton rôle là dedans c'était quoi à part empocher des sous ou une bonne note?
 
règlement 0C et 0D
 
Aussi personnellement ton premier lien (j'ai pas regardé le reste) ne m'inspire pas confiance et je n'activerai pas JS là dessus. Un cookie jusqu'en 2037 soit, mais avec un truc (dé)crypté en AES... :??:
 
EDIT: Franchement c'est gros quand même!

Citation :

mais visuellement c'était pas se que j'attendais

Tu veux dire que ça ne correspond pas au cahier des charges du boulot que toi tu était censé faire?

Citation :

je lui est demander si il serait possible d'intégrer sont code dans le mien histoire d'avoir ses fonctions de calcul mais avec la présentation de mon formulaire
mais il m'a répondu que je chercher trop dans le détail et que sont code été très bien ( sympa !  :( )  

Tu fais chier sur une dizaine (!!!) de forums, finalement tu trouves un con qui te fait ton boulot et après tu te plains en plus? Et ben...


Message édité par rat de combat le 19-05-2017 à 22:40:33
Reply

Marsh Posté le 19-05-2017 à 23:27:20    

Post a cloturé j'irait voire ailleurs
bonne continuation

Reply

Marsh Posté le 20-05-2017 à 00:22:17    

Désolé on mange bio ici. [:julm3]


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed