Réduction script

Réduction script - Javascript/Node.js - Programmation

Marsh Posté le 20-06-2015 à 19:51:35    

Bonjour à toutes et tous !
 
Je ne sais vraiment pas si je suis dans le bon sous-forum. Si ce n'est pas le cas, je vous demande de bien vouloir m'excuser.
 
Pour être honnête, je ne connais absolument rien en langage informatique. Mon domaine est plutôt l'orthographe. Je suis correctrice de textes en français.
 
Je suis d'ailleurs en pleine création d'un site web relatif à cette activité. Je fais tout par moi-même, n'ayant pas beaucoup de revenus pour le moment.
 
Une connaissance à moi m'a aidée à élaborer un script de devis en ligne pour mon site internet.
 

Code :
  1. {source 0}
  2. <!DOCTYPE html>
  3. <html lang="fr">
  4. <head>
  5.   <meta charset="utf-8">
  6.   <title>Blog</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 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.       </p>
  111.       <p class="details">
  112.         Voir <a href="formules/correction-reformulation">tableau comparatif</a>
  113.       </p>
  114.       <p>
  115.         <label class="etape" for="formjur">Statut</label>
  116.         <select id="formjur" name="formjur">
  117.           <option value="0">Étudiant</option>
  118.           <option value="1">Particulier</option>
  119.           <option value="2">Professionnel</option>
  120.         </select>
  121.         <input type="submit" value="Calculer" />
  122.       </p>
  123.     </fieldset>
  124.   </form>
  125.   <div id="resultat"></div>
  126. </section>
  127. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
  128. <script type="text/javascript">// <![CDATA[
  129. $(function(){
  130.        $("input:submit" ).click(
  131.             function(){
  132.                 var calcul = 0;
  133.                 if($("input:checked" ).val() == 1){
  134.                     if($("#formjur" ).val()== 1){
  135.                         calcul = $("#nbchar" ).val() * 0.0035;
  136.                     }else if ($("#formjur" ).val()== 2) {
  137.                         calcul = $("#nbchar" ).val() * 0.004;
  138.                     }else{
  139.                         calcul = $("#nbchar" ).val() * 0.003;
  140.                     }
  141.                 }else{
  142.                     if($("#formjur" ).val()== 1){
  143.                         calcul = $("#nbchar" ).val() * 0.0058;
  144.                     }else if ($("#formjur" ).val()== 2) {
  145.                         calcul = $("#nbchar" ).val() * 0.0066;
  146.                     }else{
  147.                         calcul = $("#nbchar" ).val() * 0.005;
  148.                     }
  149.                 }
  150.                 var resultat = Math.ceil(calcul);
  151.                 $("#resultat" ).html("Le coût indicatif de votre devis est de <span id=\"prix\">"+resultat+" &euro;</span>" );
  152.                 return false;
  153.             }
  154.            
  155.         );
  156.     });
  157. // ]]></script>


 
La personne doit renseigner le nombre de lettres de son document, cocher la formule choisie (simple ou approfondie) et son statut (étudiant, particulier ou professionnel). Les tarifs varient en fonction de ces éléments.
 
Or, je souhaiterais que lorsque le tarif s'affiche, à côté, entre parenthèses, s'affiche le montant en cas de commande déjà effectuée sur le site ou en cas de parrainage (sans virgule, arrondi à l'unité supérieure, comme ça l'est déjà pour le premier montant).
 
Par exemple, le coût indicatif de votre devis est de 100 euros (90 euros en cas de commande déjà effectuée sur le site/parrainage).  
 
Je dois donc insérer des nouveaux prix à côté des premiers dans le script.
 
Je n'ai aucune idée de comment faire tout ça.
 
Pourriez-vous me donner des pistes, s'il vous plaît ?
 
Merci.

Reply

Marsh Posté le 20-06-2015 à 19:51:35   

Reply

Marsh Posté le 20-06-2015 à 21:03:39    

D'ou provient la donnée permettant de savoir si il y a deja eu une commande ou un parrainage ?

Reply

Marsh Posté le 20-06-2015 à 21:10:45    

En fait, le client n'indique rien. C'est juste une information qui s'affiche lorsque le tarif apparaît. Par exemple, si le tarif de 100 euros s'affiche, entre parenthèses, à côté, il est écrit : (90 euros en cas de commande déjà effectuée sur le site/parrainage).
 
Il faut donc que j'insère dans mon script les tarifs qui permettront d'afficher le prix entre parenthèses.

Reply

Marsh Posté le 20-06-2015 à 21:14:21    

Ce qu'on a tenté de te demander, c'est comment tu procèdes pour conserver une mémoire dans ton site ? Pour cela tu as besoin d'un langage côté serveur comme le PHP par exemple. Afin d'avoir accès à une base de donnée qui va contenir à la fois les noms de tes utilisateurs, leurs mots de passe, ainsi que la liste des commandes. De ce fait tu pourras faire très facilement ta requête

Reply

Marsh Posté le 20-06-2015 à 21:18:23    

Non, je n'ai pas cette base de données. Mon site est très simple et je n'ai pas les compétences informatiques pour faire cela. Je ne garde rien en mémoire.
Le client insère juste le nombre de lettres de son document, choisit la formule et mentionne son statut. Le tarif apparaît. Mon script fait tout cela. J'ai juste besoin qu'entre parenthèses, à côté du tarif final, apparaisse une information, à savoir le tarif applicable pour les clients fidèles et en cas de parrainage.
 
Merci à vous.

Reply

Marsh Posté le 20-06-2015 à 21:23:00    

Dans ce cas comment savoir si le client à déjà fait une commande ?

Reply

Marsh Posté le 20-06-2015 à 21:58:40    

Je n'ai pas à le savoir.

 

Une personne veut connaître le tarif :

 

Elle remplit le formulaire. Le tarif s'affiche ; et à côté, entre parenthèses, s'affiche le tarif pour les personnes ayant déjà commandé antérieurement.

 

Par exemple :
Votre devis est de 100 euros (90 euros si vous êtes déjà client ou en cas de parrainage).

 

Ce second tarif s'affiche pour tout le monde.


Message édité par liliana78 le 20-06-2015 à 21:59:20
Reply

Marsh Posté le 20-06-2015 à 23:25:11    

Ah ok. C'est donc extrêmement simple. Il suffit de modifier la ligne 168 et d'ajouter le texte à la suite :)

Reply

Marsh Posté le 20-06-2015 à 23:27:23    

Quelle est la formule pour la réduction ? Toujours 10 euros de moins ? Ou un pourcentage du devis ?

Reply

Marsh Posté le 21-06-2015 à 07:36:23    

Merci pour ta réponse.
 
En fait, pour 0,0035 (tarif au caractère; voir script) : 0,0030 (tarif applicable pour clients fidèles et en cas de parrainage).
Pour 0,004 : 0,0033
Pour 0,003 : 0,0025
 
Pour 0,0058 : 0,0043
Pour 0,0066 : 0,005
Pour 0,005 : 0,00375
 
Merci.

Reply

Marsh Posté le 21-06-2015 à 07:36:23   

Reply

Marsh Posté le 21-06-2015 à 23:17:30    

quelque chose dans le genre ? j'ai juste appliqué un pourcentage de 12%

Code :
  1. $(function(){
  2.        $("input:submit" ).click(
  3.             function(){
  4.                 var calcul = 0;
  5.    var coefReduction = 12/100;
  6.                 if($("input: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{
  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.                 }
  23.                 var resultat = Math.ceil(calcul);
  24.    var resultatMajore = resultat - (calcul * coefReduction);
  25.                 $("#resultat" ).html("Le coût indicatif de votre devis est de <span id=\"prix\">"+resultat+" &euro; </span> tarif applicable pour clients fidèles et en cas de parrainage  <span id=\"prix\">"+resultatMajore+" &euro; </span>"  );
  26.                 return false;
  27.             }
  28.          
  29.         );
  30.     });

Reply

Marsh Posté le 22-06-2015 à 17:19:42    

Je te remercie énormément de ta réponse.
 
Est-il possible d'arrondir le prix à l'unité supérieure (ne pas avoir de chiffre avec virgule) ?
De même, est-il possible qu'il y ait un retour à la ligne et une inversion des mots ? :
Le coût indicatif de votre devis est....
(.... euros pour clients fidèles....)
 
Merci énormément.

Reply

Marsh Posté le 22-06-2015 à 18:56:15    

Code :
  1. $("#resultat" ).html("Le coût indicatif de votre devis est de <span id=\"prix\">"+resultat+" &euro; </span> <br/>tarif applicable pour clients fidèles et en cas de parrainage  <span id=\"prix\">"+Math.round(resultatMajore)+" &euro; </span>"  );

Reply

Marsh Posté le 23-06-2015 à 17:34:06    

Merci infiniment.
 
J'aurais une dernière question. Lorsqu'un tarif (le premier ou celui des clients fidèles) à partir de 1 000 s'affiche, il n'y a pas d'espace. Exemple : 1250 au lieu de 1 250. Or, cet espace est essentiel. Existe-t-il une solution ?
 
Merci de votre aide.

Reply

Marsh Posté le 23-06-2015 à 17:49:24    

Code :
  1. function formatNumber (num) {
  2.     return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1 " )
  3. }
  4. $(function(){
  5.        $("input:submit" ).click(
  6.             function(){
  7.                 var calcul = 0;
  8.    var coefReduction = 12/100;
  9.                 if($("input:checked" ).val() == 1){
  10.                     if($("#formjur" ).val()== 1){
  11.                         calcul = $("#nbchar" ).val() * 0.0035;
  12.                     }else if ($("#formjur" ).val()== 2) {
  13.                         calcul = $("#nbchar" ).val() * 0.004;
  14.                     }else{
  15.                         calcul = $("#nbchar" ).val() * 0.003;
  16.                     }
  17.                 }else{
  18.                     if($("#formjur" ).val()== 1){
  19.                         calcul = $("#nbchar" ).val() * 0.0058;
  20.                     }else if ($("#formjur" ).val()== 2) {
  21.                         calcul = $("#nbchar" ).val() * 0.0066;
  22.                     }else{
  23.                         calcul = $("#nbchar" ).val() * 0.005;
  24.                     }
  25.                 }
  26.                 var resultat = Math.ceil(calcul);
  27.    var resultatMajore = resultat - (calcul * coefReduction);
  28.                 $("#resultat" ).html("Le coût indicatif de votre devis est de <span id=\"prix\">"+formatNumber(resultat)+" &euro; </span> <br/>tarif applicable pour clients fidèles et en cas de parrainage  <span id=\"prix\">"+formatNumber(Math.round(resultatMajore))+" &euro; </span>"  );
  29.                 return false;
  30.             }
  31.          
  32.         );
  33.     });

Reply

Marsh Posté le 23-06-2015 à 20:53:43    

Merci, mais malheureusement cela ne marche pas (toujours pas d'espace). J'ai ajouté les quatre lignes du début.


Message édité par liliana78 le 23-06-2015 à 20:54:53
Reply

Marsh Posté le 23-06-2015 à 21:10:32    

Et tu as oublié de comparer les dernières... c'est pour cela que j'avais remis l'intégralité de ton script...
 

Code :
  1. formatNumber(......)

Reply

Marsh Posté le 23-06-2015 à 21:57:46    

Ok. Mais cela ne marche que pour le 2nd tarif qui s'affiche (après réduction) et pas pour le 1er.

Reply

Marsh Posté le 24-06-2015 à 03:11:48    

http://reho.st/medium/self/836b0de799025c6b15f078d0a801920e2fed20c5.png


Message édité par caps lock le 24-06-2015 à 03:13:52
Reply

Sujets relatifs:

Leave a Replay

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