Script pour calcul de tarif

Résolu/Fermé
ophelie1512 - 28 sept. 2016 à 13:45
 ophelie1512 - 28 sept. 2016 à 17:15
Bonjour à tous, je ne m'y connait PAS DU TOUT en javascript et j'en ai un a creer pour mon site de VTC..

Il me faudrait un script permettant de calculer un prix en fonction d'une distance et nombre de personne..

Voici les tarifs pratiqué :
1 a 4 KM 2 euros le km + 2 euros par passagés supplementaires

5 à 29km 2e le km +1e par passagés supl

30 a 44km 1,90 le km mais sil y a 3 personnes la regle change c 20euros la 1e puis 10 euros les autres

45 et + 1.90e le km mais sil y a 3 personnes la regle change c 30euros la 1e puis 10 euros les autres

le calcul est pas compliqué mais ne sachant pas utiliser le java je seche ...
A voir également:

8 réponses

<p>Adresse de depart <input id="depart" name="Adresse de depart" required="" type="text"></p>

<p>Adresse d'arrivé<input id="Distance" name="Distance" required="" type="text"></p>

<p>Distance de votre parcours :<input id="distance" name="distance" required="" type="Kilometre">

Nombre de personnes:<input id="NbPassager" name="Nombre de personnes" required="" type="number"></p>

<p></p><input type="button" onclick="calculer();" value="Calculer" /></p>

<p>Tarifs (en €)<input id="Tarifs" name="tarifs" required="" type="price" /></p>
<script type="text/javascript">
function calculer(){

var Distance = document.getElementById('distance').value;
var Tarifs = document.getElementById('Tarifs');
var nbPassager = parseInt(document.getElementById('NbPassager').value);
//ici ton code de calcul...
var X = parseFloat(Distance);
var tarifKM;
var prixPassager;
console.log("Distance :"+Distance);
console.log("X :"+X);
console.log("NB Passagers :"+nbPassager);
if(X>=1 && X<=4){
tarifKM = 2*X;
prixPassager=2;
}
if(X>=5 && X<=29){
tarifKM = 2*X;
prixPassager=1;
}
if(X>=30 && X<=44){
if(nbPassager>=3){
tarifKM = 1.90*X;
prixPassager=0;
}else{
tarifKM = 0;
prixPassager = 20 + ((nbPassager -1) * 10);
}
}

if(X>=45){
if(nbPassager>=3){
tarifKM = 1.90*X;
prixPassager=0;
}else{
tarifKM = 0;
prixPassager = 30 + ((nbPassager -1) * 10);
}
}

var resultat = tarifKM + prixPassager;
Tarifs.value = resultat;
}
</script>

SCRIPT FINAL ! il fonctionne parfaitement mille merci tu es un génie !!!!
2
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 718
28 sept. 2016 à 16:07
Essayes ça :
<p>Adresse de depart <input id="depart" name="Adresse de depart" required="" type="text"></p>

<p>Adresse d'arrivé<input id="Distance" name="Distance" required="" type="text"></p>

<p>Distance de votre parcours :<input id="distance" name="distance" required="" type="Kilometre">

Nombre de personnes:<input id="NbPassager" name="Nombre de personnes" required="" type="number"></p>

<p></p><input type="button" onclick="calculer();" value="Calculer" /></p>

<p>Tarifs (en €)<input id="Tarifs" name="tarifs" required="" type="price" /></p>
<script type="text/javascript">
 function calculer(){
   
   var Distance = document.getElementById('distance').value;
   var Tarifs = document.getElementById('Tarifs');
   var nbPassager = parseInt(document.getElementById('NbPassager').value);
   //ici ton code de calcul...
   var X = parseFloat(Distance);
   var tarifKM;
   var prixPassager;
   console.log("Distance :"+Distance);
   console.log("X :"+X);
   console.log("NB Passagers :"+nbPassager);
   if(X>=1 && X<=4){
     tarifKM = 2*X;
     prixPassager=2;
   }
   if(X>=5 && X<=29){
     tarifKM = 2*X;
     prixPassager=1;
   }
   if(X>=30 && X<=44){
     if(nbPassager>=3){
       tarifKM = 1.90*X;
       prixPassager=0;
     }else{
       tarifKM = 0;
       prixPassager = 20 + ((nbPassager -1) * 10);
     }
   }
   
   if(X>=45){
     if(nbPassager>=3){
       tarifKM = 1.90*X;
       prixPassager=0;
     }else{
       tarifKM = 0;
       prixPassager = 30 + ((nbPassager -1) * 10);
     }
   }
 
  var resultat = tarifKM + prixPassager;
  Tarifs.value = resultat;
 }
</script>

1
if(X>=45){
if(nbPassager<3){
tarifKM = 1.90*X;
prixPassager=0;
}else{(nbPassager>=3)
tarifKM = 0;
prixPassager = 30 + ((nbPassager -1) * 10);
}
}
C'est plutot ca qu'il faudrait, mais ça ne marche pas, quand je rentre 60 en km et 4 en personnes le calcule reste blanc.

En tout cas merci infiniment de t'etre penché sur mon cas !!!!

Le reste fonctionne casi a merveille
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 718
28 sept. 2016 à 13:48
Bonjour,

Dans ta question... tu parles de JAVA .... et de javascript ... et de site (internet ? )
Sachant que JAVA ... n'est pas JAVASCRIPT.... je déplace ta question dans le bon forum.

Pour ce qui est de ton problème... ne sachant rien du formulaire dans lequel tu entres les infos à calculer... difficle de te répondre.
La seule chose que je puisse te dire c'est :
Utiliser des IF pour savoir quel est tarif à appliquer en fonction du KM
Faire une multiplication.

0
IF ? iframe ? merci beaucoup pour ta réponse
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 718 > ophelie1512
28 sept. 2016 à 13:52
If = Condition => si (condition ) ... faire quelquechose ... (else) = sinon faire autre chose....
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Instructions/if...else

if (x > 5){
  // faire quelque chose
} else if (x > 50) {
  // faire autre chose
} else {
  // faire encore autre chose
}
0
voila c'est ça qu'il faut que l'applique merci ! mais moi ce calcul sur excel je l'avais parfaitement bien réussi mais en langage html je suis naze
0
oui j'ai crée un site avec formulaire de contact pour réserber une course en ligne mais il me faudrait un script permettant de calculer le tarif de la course, le client rentre les kilometres et le nombre de personne et le script calcul le prix ..
0
Pierre1310 Messages postés 8564 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 649
28 sept. 2016 à 13:53
C'est mieux de faire les calculs côté serveur.
0
ophelie1512 > Pierre1310 Messages postés 8564 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020
28 sept. 2016 à 13:57
peut tu m'aiguiller ?
Dans mon site (e-monsite) j'ai un editeur html.. c'est la que je devrait poser mon script pour que mes tarifs apparaissent après que le client ai rentré les donnees
0
Pierre1310 Messages postés 8564 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 649
28 sept. 2016 à 13:58
Comme l'a dit jordane45, il faudrait que tu postes ton formulaire.
0
mais je ne l'ai pas crée vu que je ne sais pas faire..

Il faudrait 3 variables..

Distance
Nombre de personne
TARIF
0

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

Posez votre question
Au passage, j'ai un script google api V3 qui me calcul la distance en fonction de deux adresses entrée par le client, puis-je recuper la caleur obtenu et l'integrer dans mon script pour que le tout apparaisse tu la meme page ( donc adresse de départ/ adresse d'arrivé resultat distance/ nombre de personne/ tarif)
0
if (1 > x > 4){

} else if (y = 1) {

z=x*2

if (1 > x > 4){

} else if (y >2) {

z=x*2+y*2-2

Voila un debut de mes conditions pour appliquer les tarifs. La question est oui mais apres ? lol comment je vais pouvoir creer des champs pour que le client rentre la donnée et que mon script calcul le tarif???
0
if (1 < x < 4){

} else if (y = 1) {

z=x*2

if (1 < x < 4){

} else if (y > 1 ) {

z=x*2+y*2-2


if (5< x < 29){

} else if (y=1) {

z=x*2

if (5 < x ><29){

} else if (y > 1 ) {

z=x*2+y*1-1

if (30< x < 44){

} else if (y=1=2)

z=x*1,90

if (30 < x < 44){

} else if (y>=3) {

z=20+y*10-10

if (30 <x < 45){

} else if (y=1=2)

z=x*1,90

if (x > 45){

} else if (y>=3) {

z=30+y*10-10

if (x > 45){

} else if (y=1=2)

z=x*1,90

if (1 < x < 4){

} else if (y = 1) {

z=x*2

if (1 < x < 4){

} else if (y > 1 ) {

z=x*2+y*2-2


if (5< x < 29){

} else if (y=1) {

z=x*2

if (5 < x ><29){

} else if (y > 1 ) {

z=x*2+y*1-1

if (30< x < 44){

} else if (y=1=2)

z=x*1,90

if (30 < x < 44){

} else if (y>=3) {

z=20+y*10-10

if (30 <x < 45){

} else if (y=1=2)

z=x*1,90

if (x > 45){

} else if (y>=3) {

z=30+y*10-10

if (x > 45){

} else if (y=1=2)

z=x*1,90

VOILA LE CALCUL COMPLET ALORS QUI PEUT CORRIGER LES ERREURS DE SYNTAXE CAR JE NE SUIS PAS CERTAINE QUE CE SOIT PARFAIT ET M'INDIQUER COMMENT FAIRE POUR METTRE UN SCRIPT TYPE DANS MON SITE POUR QUE LE CLIENT PUISSE ENTREZ LE NOMBRE DE PERSONNE ET QUE JE PUISSE RECUPERE LA DONNEE KM DANS MON SCRIPT GOOGLE
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 718
28 sept. 2016 à 14:51
0
je n'y comprend rien... a quel moment je dois inserer ma formule ?
0
je me suis trompée dans le sens des fleches

Voici ce que ca donne pour la formule :
if (1 < x < 4){
  
} else if (y = 1) {

z=x*2

if (1 < x < 4){
  
} else if (y > 1 ) {

z=x*2+y*2-2


if (5< x < 29){
  
} else if (y=1) {

z=x*2

if (5 < x < 29){
  
} else if (y > 1 ) {

z=x*2+y*1-1

if (30< x < 44){
  
} else if (y=1=2)

z=x*1,90 

if (30 < x < 44){
  
} else if (y>=3) {

z=20+y*10-10

if (30 <x < 45){
  
} else if (1=y=2)

z=x*1,90 

if (x > 45){
  
} else if (y>=3) {

z=30+y*10-10

if (x > 45){
  
} else if (1=y=2)

z=x*1,90 

et voici dans quoi je voudrais "l'integrer" :
<p>Adresse de depart <input id="depart" name="Adresse de depart" required="" type="text" /></p>

<p>Adresse d'arrivé<input id="Distance" name="Distance" required="" type="text" /></p>

<p>;Distance de votre parcours :<input id="Distance" name="Distance" required="" type="Kilometre" 

;Nombre de personnes:<input id="Nombre de personnes" name="Nombre de personnes" required="" type="number" /></p>

<p></p><input type="submit" value="Calculer" /></p>

<p>Tarifs (en €)<input id="Tarifs" name="tarifs" required="" type="price" /></p>





|-
| style="background-color:#EFF8FB;border: 1px solid transparent"| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
0
ENSUITE .... j'ai ce script de calcul de distance... il marche très bien sauf que je veux supprimer la carte et l'itineraire détaillé..

Je veux juste adresse de départ adresse d'arrivé et kilometre..

POSSIBLE ?

<!DOCTYPE html>
<html>
<title>Calculateur d'itinéraire</title>
<meta name="KeyWords" content="itineraire,google,maps,plan de ville,carte,depart,arrivee,kilometrage,parcours,route,trajet,plan,deplacement,voyage,tourisme,adresse,ville,village,carte routiere,google maps,calcul d'itineraire,distance,chemin,geolocalisation,routier,autoroute,automobile,voiture,auto,acces,pays,region">
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="NotePad++">
<META name="Copyright" content="Copyright VDC">
<META NAME="Author" CONTENT="VDC">
<META NAME="OWNER" CONTENT="VDC">
<META name="Rating" content="general">
<META name="revisit-after" content="15 days">
<META name="robots" content="index, follow">
<META name="Robots" content="All">
<META http-equiv="Content-Language" content="fr">
<style type="text/css">
body { font-family: Arial, Verdana, sans serif; font-size: 11px; margin: 2px; }
table.iti { background-color: #FFFFFF; font-size: 11px; margin: 4px; }
table.directions th { background-color:#EEEEEE; font-size: 15px;}
table.directions td { font-size: 11px;}
img { color: #000000; }
#map_canvas { width: 446px; height: 400px; border: 1px solid #333333 ; margin: 0px;}
#directions { width: 246px; height: 400px; border: 1px solid #333333 ; margin: 2px; overflow: auto; width: auto; text-align: left; font-size: 9px; }
</style>
<style type="text/css" media="print">
.print { display:none; }
#directions { width: 600px; height: auto; border: 1px solid #333333; margin: 2px; text-align: left; font-size: 9px; }
</style>
<script src=" http://maps.google.com/?file=api&v=2.x&key=ABQIAAAAFw0lDRKsdCra15LPvIxvehRjMgnVhZHmNh95BVtUkp0XgfXLlhSXfnSAP-eiQqfEOGaImc_V_dSQGQ" type="text/javascript"></script>
<script type="text/javascript">
var map;
var gdir;
var geocoder = null;
var addressMarker;
function initialize()
{
if (GBrowserIsCompatible())
{
map = new GMap2(document.getElementById("map_canvas"));
gdir = new GDirections(map, document.getElementById("directions"));
GEvent.addListener(gdir, "load", onGDirectionsLoad); <!-- Charge la partie pour les distances -->
GEvent.addListener(gdir, "error", handleErrors); <!-- Charge la partie pour les messages d erreurs -->
map.setCenter(new GLatLng(46.98025, 3.66943), 6);
map.addControl(new GMapTypeControl());
map.addControl(new GLargeMapControl());
map.addControl(new GOverviewMapControl());
map.addControl(new GScaleControl());
map.enableScrollWheelZoom();
}
}
function setDirections(fromAddress, toAddress, locale)
{
gdir.load("from: " + fromAddress + " to: " + toAddress, { "locale": locale });
}
function handleErrors()
{
if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
alert("Aucune location géographique correspondante n'a pu être trouvée pour l'une des adresses spécifiées.\n Ce peut être du à une adresse récente, ou incorrecte.\nN'oubliez pas d'ajouter dans l'adresse le pays (en anglais).\nError code: " + gdir.getStatus().code);
else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
alert("La demande d'itinéraire n'a pu être calculée avec succès, aucune raison de l'échec n'est connu.\n Error code: " + gdir.getStatus().code);
else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + gdir.getStatus().code);
else if (gdir.getStatus().code == G_GEO_BAD_KEY)
alert("La clé (Key) n'est pas valide ou ne correspond pas au nom de domaine. \n Error code: " + gdir.getStatus().code);
else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
alert("La demande d'itinéraire n'a pu être correctement parsé.\n Error code: " + gdir.getStatus().code);
else alert("Une erreur inconnue est survenue.");
}
function onGDirectionsLoad()
{
var reg=new RegExp(" ", "g");
kilometrage = gdir.getDistance().html;
document.getElementById("km").value = kilometrage.replace(reg,' ');
}
</script>
</head>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" leftmargin="0" rightmargin="0" topmargin="0" bottommargin="0" marginheight="0" marginwidth="0" onLoad="initialize();" onUnload="GUnload()">
<form id="monFormulaire" method="post" action="#" onSubmit="setDirections(this.from.value, this.to.value, 'fr'); return false">
<table width="696" border="0" class="iti">
<tr valign="top">
<td align="right" width="100"><strong>Départ :</strong></td><td align="left" width="476"><input type="text" id="fromAddress" name="from" size="70"></td>
<td align="right" rowspan="3" width="120" valign="middle"><input name="gogogo" type="submit" value="Itinéraire" /></td>
</tr>
<tr><td align="right"><strong>Arrivée :</strong></td><td align="left"><input type="text" id="toAddress" name="to" size="70"></td></tr>
<tr><td align="right"><strong>Kilométrage :</strong></td><td><input type="text" id="km" value="" size="9" disabled > Il est conseillé d'ajouter le pays (en anglais) dans l'adresse !</td></tr>
<tr><td colspan="2">
<center>
<script type="text/javascript"><!--
google_ad_client = "pub-6860157129998313";
google_ad_width = 468;
google_ad_height = 15;
google_ad_format = "468x15_0ads_al_s";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "D8E9EC";
google_color_link = "FFFF00";
google_color_text = "0000FF";
google_color_url = "CCCCCC";
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script><br>
</center>
</td><td align="center"><A href="javascript:window.print()"><img src="http://icdn.pro/images/fr/i/m/imprimante-icone-9549-128.png" width="32" height="32" border="0" alt="Imprimer l'itinéraire" title="Imprimer l'itinéraire"></A>
</td></tr>
</table>
<table width="700" border="0" class="directions" cellspacing="1" cellpadding="0">
<tr><th width="246">Itinéraire détaillé</th><th width="446" class="print">Carte</th></tr>
<tr><td><div id="directions"></td><td><div id="map_canvas" class="print"></div></td></tr>
</table>
</form>
</BODY>
</html>
0