Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
456 connectés 

  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  Rajout formule dans script

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Rajout formule dans script

n°2265396
liliana78
Posté le 05-09-2015 à 13:14:10  profilanswer
 

Bonjour à toutes et à tous !
 
Voilà, pour être brève, je suis correctrice de textes en français (le client me soumet son document, je corrige l'orthographe, la grammaire, la syntaxe, etc.). Il s'agit d'un travail rémunéré. Je dispose d'un site internet.
 
J'ai installé un formulaire de devis en ligne permettant au client de connaître le tarif de la prestation.
Il inscrit le nombre de lettres, coche la formule choisie (1,2 ou 3) ainsi que son statut (étudiant, particulier ou professionnel) et le prix apparaît.
 
Au départ, je ne proposais que deux formules (1 et 2). Mais je souhaite en proposer une troisième (le prix sera plus élevé).
 
Tout d'abord, voici mon script initial (sans la formule 3) :  
 

Code :
  1. {source 0}
  2. <!DOCTYPE html>
  3. <html lang="fr">
  4. <head>
  5.   <meta charset="utf-8">
  6.   <title>Blog de correction textes</title>
  7.   <style>
  8.   body {
  9.   background-size: 5px 900px, 6px 6px;
  10.   font-family: Verdana, Geneva, sans-serif;
  11.   font-size: 13px;
  12.   color: #000309;
  13.   text-align: left;
  14.   line-height: 24px;
  15. }
  16. #page {
  17.   width: 650px;
  18.   margin: auto;
  19.   padding: 20px;
  20.   background: #d8d8d8; /* Old browsers */
  21.   background: -webkit-gradient(linear, left top, left bottom, color-stop(1%,#d8d8d8), color-stop(100%,#ffffff)); /* Chrome,Safari4+ */
  22.   filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#d8d8d8', endColorstr='#ffffff',GradientType=0 ); /* IE6-9 */
  23.   background:    -moz-linear-gradient(top,       #d8d8d8 1%, #ffffff 100%); /* FF3.6+ */
  24.   background: -webkit-linear-gradient(top,       #d8d8d8 1%, #ffffff 100%); /* Chrome10+,Safari5.1+ */
  25.   background:      -o-linear-gradient(top,       #d8d8d8 1%, #ffffff 100%); /* Opera 11.10+ */
  26.   background:     -ms-linear-gradient(top,       #d8d8d8 1%, #ffffff 100%); /* IE10+ */
  27.   background:         linear-gradient(to bottom, #d8d8d8 1%, #ffffff 100%); /* W3C */
  28. }
  29. #prix { font-weight:bold; font-size:200%; color:blue; }
  30. h1 {
  31.   font-size: 0em;
  32.   line-height: 1em;
  33.   margin: 0;
  34.   text-transform: uppercase;
  35. }
  36. fieldset {
  37.   border: none;
  38.   margin: 0 0 1ex;
  39.   padding: 0;
  40. }
  41. .explications {
  42.   border-left: solid thin #0042b0;
  43.   padding-left: 1ex;
  44. }
  45. .explications ul {
  46.   list-style: none;
  47.   font-size: 10px;
  48.   font-style: italic;
  49.   padding: 0;
  50. }
  51. .explications li {
  52.   margin: 1ex 0;
  53. }
  54. .explications h2 {
  55.   font-style: italic;
  56.   font-size: 1em;
  57.   margin: 0 0 1em;
  58. }
  59. explications h3 {
  60.   font-style: italic;
  61.   font-size: 1em;
  62.   margin: 0 0 1em;
  63. }
  64. .etape {
  65.   font-weight: bold;
  66.   text-transform: uppercase;
  67. }
  68. .etape::after {
  69.   content: "\00A0: ";
  70. }
  71.   </style>
  72. </head>
  73. <body>
  74. <!DOCTYPE html>
  75. <html lang="fr">
  76. <head>
  77.   <meta charset="utf-8">
  78.   <title>Devis pour correction &ndash; Liliana78</title>
  79. </head>
  80. <body>
  81. <section id="page">
  82.   <h1>Coût de votre correction</h1>
  83.   <form id="testform">
  84.     <fieldset>
  85.       <p>
  86.         <label for="nbchar" class="etape">Nombre de signes</label>
  87.         <input id="nbchar" type="text" name="nbchar" value="0" />
  88.       </p>
  89.       <div class="explications">
  90.         <h2>Où trouver le nombre de signes ? (Caractères + espaces) </h2>
  91.         <ul>
  92.           <li>Word 2007/2010 : Cliquez sur l'onglet <strong>Révisions</strong>,
  93.             puis <strong>Vérification</strong> et enfin <strong>Statistiques</strong>.
  94.             Repérez la ligne <strong>caractères espaces compris.</strong>
  95.           </li>
  96.           <li>Word 2003/OpenOffice : Cliquez sur <strong>Outils</strong>,
  97.             puis <strong>Statistiques.</strong> Repérez la ligne
  98.             <strong>caractères espaces compris.</strong>
  99.           </li>
  100.         </ul>
  101.       </div>
  102.     </fieldset>
  103.     <fieldset>
  104.       <p>
  105.         <strong class="etape">Formule</strong>
  106.         <input  id="forumle1" type="radio" name="formule" value="1" checked="checked" />
  107.         <label for="forumle1">Simple</label>
  108.         <input  id="formule2" type="radio" name="formule" value="2" />
  109.         <label for="formule2" />Approfondie</label>
  110.    
  111.        
  112.       </p>
  113.       <p class="details">
  114.         Voir <a href="formules/correction-reformulation">tableau comparatif</a>
  115.       </p>
  116.       <p>
  117.         <label class="etape" for="formjur">Statut</label>
  118.         <select id="formjur" name="formjur">
  119.           <option value="0">Étudiant</option>
  120.           <option value="1">Particulier</option>
  121.           <option value="2">Professionnel</option>
  122.         </select>
  123.         <input type="submit" value="Calculer" />
  124.       </p>
  125.     </fieldset>
  126.   </form>
  127.   <div id="resultat"></div>
  128. </section>
  129. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
  130. <script type="text/javascript">// <![CDATA[
  131. function formatNumber (num) {
  132.     return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1 " )
  133. }
  134. $(function(){
  135.        $("input:submit" ).click(
  136.             function(){
  137.                 var calcul = 0;
  138.    var coefReduction = 10/100;
  139.                 if($("input:checked" ).val() == 1){
  140.                     if($("#formjur" ).val()== 1){
  141.                         calcul = $("#nbchar" ).val() * 0.0035;
  142.                     }else if ($("#formjur" ).val()== 2) {
  143.                         calcul = $("#nbchar" ).val() * 0.004;
  144.                     }else{
  145.                         calcul = $("#nbchar" ).val() * 0.003;
  146.                     }
  147.                 }else{
  148.                     if($("#formjur" ).val()== 1){
  149.                         calcul = $("#nbchar" ).val() * 0.0058;
  150.                     }else if ($("#formjur" ).val()== 2) {
  151.                         calcul = $("#nbchar" ).val() * 0.0066;
  152.                     }else{
  153.                         calcul = $("#nbchar" ).val() * 0.005;
  154.                     }
  155.              
  156.                  
  157.                 }
  158.                 var resultat = Math.ceil(calcul);
  159.                 $("#resultat" ).html("Tarif généralement appliqué : <span id=\"prix\">"+resultat+" &euro;</span>" );
  160.                 return false;
  161.             }
  162.        
  163.         );
  164.     });
  165. // ]]></script>


 
 
 
Et voici les modifications que j'ai apportées, sans succès, pour ajouter la formule 3 :
 

Code :
  1. <strong class="etape">Formule</strong>
  2.         <input  id="forumle1" type="radio" name="formule" value="1" checked="checked" />
  3.         <label for="forumle1">Simple</label>
  4.         <input  id="formule2" type="radio" name="formule" value="2" />
  5.         <label for="formule2" />Approfondie</label>
  6.         <input  id="formule3" type="radio" name="formule" value="3" />
  7.         <label for="formule3" />Complète</label>


         
 

Code :
  1. if($("input:checked" ).val() == 1){
  2.                     if($("#formjur" ).val()== 1){
  3.                         calcul = $("#nbchar" ).val() * 0.0035;
  4.                     }else if ($("#formjur" ).val()== 2) {
  5.                         calcul = $("#nbchar" ).val() * 0.004;
  6.                     }else{
  7.                         calcul = $("#nbchar" ).val() * 0.003;
  8.                     }
  9.                 }else{
  10.                     if($("#formjur" ).val()== 1){
  11.                         calcul = $("#nbchar" ).val() * 0.0058;
  12.                     }else if ($("#formjur" ).val()== 2) {
  13.                         calcul = $("#nbchar" ).val() * 0.0066;
  14.                     }else{
  15.                         calcul = $("#nbchar" ).val() * 0.005;
  16.                     }
  17.                  }else{
  18.                     if($("#formjur" ).val()== 1){
  19.                         calcul = $("#nbchar" ).val() * 0.007;
  20.                     }else if ($("#formjur" ).val()== 2) {
  21.                         calcul = $("#nbchar" ).val() * 0.008;
  22.                     }else{
  23.                         calcul = $("#nbchar" ).val() * 0.006;
  24.                     }
  25.              
  26.                  
  27.                 }


 
Ai-je oublié quelque chose ?
 
Merci de votre aide.

mood
Publicité
Posté le 05-09-2015 à 13:14:10  profilanswer
 

n°2265699
FBZ
Posté le 10-09-2015 à 17:34:55  profilanswer
 

Code :
  1. <strong class="etape">Formule</strong>
  2. <input  id="forumle1" type="radio" name="formule" value="1" checked="checked" />
  3. <label for="forumle1">Simple</label>
  4. <input  id="formule2" type="radio" name="formule" value="2" />
  5. <label for="formule2" />Approfondie</label>
  6. <input  id="formule3" type="radio" name="formule" value="3" />
  7. <label for="formule3" />Complète</label>


       

 
Code :
  1. $(function(){
  2.       $("input:submit" ).click(
  3.         function(){
  4.           var calcul = 0;
  5.           var coefReduction = 10/100;
  6.           if($("input[name=formule]:checked" ).val() == 1) {
  7.             if ($("#formjur" ).val()== 1) {
  8.               calcul = $("#nbchar" ).val() * 0.0035;
  9.             } else if ($("#formjur" ).val() == 2) {
  10.               calcul = $("#nbchar" ).val() * 0.004;
  11.             } else {
  12.               calcul = $("#nbchar" ).val() * 0.003;
  13.             }
  14.           } else if ($("input[name=formule]:checked" ).val() == 2) {
  15.             if($("#formjur" ).val()== 1) {
  16.               calcul = $("#nbchar" ).val() * 0.0058;
  17.             } else if ($("#formjur" ).val() == 2) {
  18.               calcul = $("#nbchar" ).val() * 0.0066;
  19.             } else {
  20.               calcul = $("#nbchar" ).val() * 0.005;
  21.             }
  22.           } else {
  23.               if ($("#formjur" ).val()== 1) {
  24.                 calcul = $("#nbchar" ).val() * 0.007;
  25.               } else if ($("#formjur" ).val() == 2) {
  26.                 calcul = $("#nbchar" ).val() * 0.008;
  27.               } else {
  28.                 calcul = $("#nbchar" ).val() * 0.006;
  29.               }
  30.           }
  31.           var resultat = Math.ceil(calcul);
  32.           $("#resultat" ).html("Tarif généralement appliqué : <span id=\"prix\">"+resultat+" €</span>" );
  33.           return false;
  34.         }
  35.       );
  36.     });
 

Quand on a 2 conditions : if > else
Si on en ajoute une 3e ou + : if > else if.... (n conditions) > else

 

J'ai modifié la condition pour qu'elle soit plus parlante en ajoutant le nom du formulaire des radios

 

++

 

EDIT:

 

Au lieu de garder ce code degueux autant utiliser des tableaux:

 
Code :
  1. $(function(){
  2.   var tarifs = [[0.003,0.005,0.006],   // Etudiant
  3.                 [0.0035,0.0058,0.007], // Particulier
  4.                 [0.004,0.0066,0.008]]; // Professionnel
  5.   $("#testform" ).submit(function() {
  6.       var coefReduction = 0.9,
  7.           nbrCaractere  = $("#nbchar" ).val(),
  8.           formule       = $("input[name=formule]:checked" ).val() - 1,
  9.           client        = $("#formjur" ).val(),
  10.           resultat      = Math.ceil(tarifs[client][formule] * nbrCaractere);
  11.       $("#resultat" ).html("Tarif généralement appliqué : <span id=\"prix\">" + resultat + " €</span>" );
  12.       return false;
  13.   });
  14. });


Message édité par FBZ le 10-09-2015 à 19:14:43

---------------
[Feed-back]

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  Rajout formule dans script

 

Sujets relatifs
Script de recherche avancée pour téléchargement[RESOLU] Script php via Cron
Stylish : exclure une page d'un scriptRecherche de script - relancer un .exe en cas de crash
Script autocaptchaExecuter script sans la page blanche
besoin d'aide pour script PHPProblème de script
Interactions script bash et application en ligne de commandescript suppression clé de registre
Plus de sujets relatifs à : Rajout formule dans script


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR