zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden Preisrechner mit Distanz Transitzeit und Nettopreis

Antwort
 
LinkBack Themen-Optionen Ansicht
  #11 (permalink)  
Alt 21.04.2016, 13:41
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.04.2016
Beiträge: 13
med47 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von cloned Beitrag anzeigen
Du hast hier diesen Block in deinem Code
Code:
		distance = "  Entfernung: "+response.routes[0].legs[0].distance.text;
		distance += " Nettopreis: " + ((Math.round((response.routes[0].legs[0].distance.value)/1000)*preisprokm)+0.0) + " € ";
		distance += " Fahrzeit: "+response.routes[0].legs[0].duration.text;
In der zweiten Zeile berechnest du den Preis. Hier legst du einfach eine Variable an, wo du vorab den Preis berechnest und den fügst du dann statt ((Math.round((response.routes[0].legs[0].distance.value)/1000)*preisprokm)+0.0) ein.
Also so in etwa (Pseudocode)

Code:
var preis; 
if (response.routes[0].legs[0].distance.value < 10000) { //korrekten Wert bitte selber ermitteln
    preis = Mindestpreis; 
}
else {
   preis = Hier mathe-formel von oben einfügen
}
so in etwa?

Code:
if($entfernung <= 150)
{
$preis = 110;
}
else
{
$dif = ($entfernung - 150) * 0,75;
$preis = $dif + 110
}
Mit Zitat antworten
Sponsored Links
  #12 (permalink)  
Alt 21.04.2016, 14:26
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 30.01.2014
Beiträge: 2.247
cloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblick
Standard

Ja, das ist das, was ich gepostet habe (nur mit sinnvollen Werten )
Mit Zitat antworten
Sponsored Links
  #13 (permalink)  
Alt 21.04.2016, 14:35
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.04.2016
Beiträge: 13
med47 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von cloned Beitrag anzeigen
Ja, das ist das, was ich gepostet habe (nur mit sinnvollen Werten )
sorry aber ich bin nicht weiter gekommen also mein vorstellung war,wenn das ziel unter 150 km ist das der kunde ein mindestbetrag von 110,00 € zahlen muss und wenn über 150 km ist 0,75 € je lastkilometer zahlen muss
Mit Zitat antworten
  #14 (permalink)  
Alt 21.04.2016, 15:11
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 30.01.2014
Beiträge: 2.247
cloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblick
Standard

Das habe ich dir bereits beantwortet (und da hast du auch schon einen Code dazu geschrieben) Was funktioniert daran denn nicht?
Mit Zitat antworten
  #15 (permalink)  
Alt 21.04.2016, 16:32
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von med47 Beitrag anzeigen
so in etwa?

Code:
if($entfernung <= 150)
{
$preis = 110;
}
else
{
$dif = ($entfernung - 150) * 0,75;
$preis = $dif + 110
}
Wobei ich mich frage woher die Dollarzeichen hier her kommen? Die sind in JS nicht notwendig oder soll das PHP Code sein?
Mit Zitat antworten
  #16 (permalink)  
Alt 21.04.2016, 16:55
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.04.2016
Beiträge: 13
med47 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von cloned Beitrag anzeigen
Das habe ich dir bereits beantwortet (und da hast du auch schon einen Code dazu geschrieben) Was funktioniert daran denn nicht?
was mache ich hier falsch

Code:
directionsDisplay.setDirections(response);
                distance = "  Entfernung: "+response.routes[0].legs[0].distance.text;
		distance += " Nettopreis: " + ((response.routes[0].legs[0].distance.value)/1000){if($entfernung <= 150)
{
$preis = 110;
}
else
{
$dif = ($entfernung - 150) * 0,75;
$preis = $dif + 110
} " € ";
Mit Zitat antworten
  #17 (permalink)  
Alt 21.04.2016, 17:37
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Wissen wir nicht, du hast aber meine Frage auch nicht beantwortet. Soll das JS oder PHP Code sein?
Mit Zitat antworten
  #18 (permalink)  
Alt 21.04.2016, 19:10
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.04.2016
Beiträge: 13
med47 befindet sich auf einem aufstrebenden Ast
Standard

so Leute jetzt hat ein freund geholfen es läuft auch alles sauber nur das mit dem Mindestbetrag hat er auch nicht hinbekommen.
ich sende mal den neue js code

Code:
<hr />
<p> </p>
<p>Geben Sie hier den Start- und Zielort (Straße, Hausnummer, PLZ, Ort) ein. Danach klicken Sie auf die entsprechende Fahrzeugkategorie und abschließend auf Berechnen. Dann erscheint rechts daneben die Entfernung, die Fahrzeit und der Nettopreis.</p>
<p> </p>
<table class="mceItemTable" style="cursor: default; border: 1px dashed #bbbbbb;" border="0">
<tbody>
<tr>
                     </strong></p>
</td>
</tr>

</tbody>
</table>
<p> </p>
<p><em>		<div class="moduletable">
							<h3>Preisrechner</h3>

<style type="text/css">
	#priceCalculator {
		width: 660px;
		height: 700px;
	}
	.errorMessage {
		font-size: 10px;
		font-style: italic;
		color: #720000;
	}
	.addressRow {
		margin-bottom: 2px;
	}
	.addressLabel {
		float: left;
		font-size: 12px;
		font-weight: bold;
		width: 200px;
		height: 24px;
		padding-top: 6px;
	}
	.addressInput {
		float: left;
		font-size: 14px;
		width: 440px;
		height: 24px;
		padding-left: 8px;
		padding-top: 5px;
	}
	.vehicleButtonRow {
		margin-top: 15px;
	}
	.vehicleButtonLabel {
		float: left;
		font-size: 12px;
		font-weight: bold;
		width: 200px;
		height: 41px;
		padding-top: 5px;
	}
	.vehicleButtonSpacer {
		float: left;
		width: 10px;
		height: 28px;
	}
	.resultRow {
		margin-top: 0px;
	}
	.priceButton {
		float: left;
		width: 148px;
		height: 46px;
	}
	.waitingAnimation {
		float: left;
		width: 52px;
		height: 46px;
	}
	.resultBox {
		float: left;
		width: 148px;
		height: 46px;
		font-size: 20px;
		color: #666666;
		font-weight: bold;
		text-align: center;
		line-height: 46px;
	}
	.resultBoxSpacer {
		float: left;
		width: 4px;
		height: 46px;
	}
	.googleCopyright {
		float: right;
		margin-top: 30px;
		margin-right: 6px;
		font-size: 8px;
		color: Gray;
	}
	.vehicleButton {
		-moz-box-shadow:inset 0px 1px 0px 0px #d9fbbe;
		-webkit-box-shadow:inset 0px 1px 0px 0px #d9fbbe;
		box-shadow:inset 0px 1px 0px 0px #d9fbbe;
		background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #b8e356), color-stop(1, #a5cc52));
		background:-moz-linear-gradient(top, #b8e356 5%, #a5cc52 100%);
		background:-webkit-linear-gradient(top, #b8e356 5%, #a5cc52 100%);
		background:-o-linear-gradient(top, #b8e356 5%, #a5cc52 100%);
		background:-ms-linear-gradient(top, #b8e356 5%, #a5cc52 100%);
		background:linear-gradient(to bottom, #b8e356 5%, #a5cc52 100%);
		filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b8e356', endColorstr='#a5cc52',GradientType=0);
		background-color:#b8e356;
		-moz-border-radius:6px;
		-webkit-border-radius:6px;
		border-radius:6px;
		border:1px solid #83c41a;
		display:inline-block;
		cursor:pointer;
		color:#ffffff;
		font-family:Arial;
		font-size:15px;
		font-weight:bold;
		text-decoration:none;
		text-shadow:0px 1px 0px #86ae47;
		text-align:center;
		vertical-align:middle;
		width: 94px;
		padding: 6px 24px;
		float: left;
		line-height: 28px;
	}
	.vehicleButton:hover {
		background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #a5cc52), color-stop(1, #b8e356));
		background:-moz-linear-gradient(top, #a5cc52 5%, #b8e356 100%);
		background:-webkit-linear-gradient(top, #a5cc52 5%, #b8e356 100%);
		background:-o-linear-gradient(top, #a5cc52 5%, #b8e356 100%);
		background:-ms-linear-gradient(top, #a5cc52 5%, #b8e356 100%);
		background:linear-gradient(to bottom, #a5cc52 5%, #b8e356 100%);
		filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#a5cc52', endColorstr='#b8e356',GradientType=0);
		background-color:#a5cc52;
	}
	.vehicleButton:active {
		position:relative;
		top:1px;
	}

</style>

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var directionsService = new google.maps.DirectionsService();
var zipHome = "Giesenkirchn, 39387 mg";

var distCount = 3;
var distCalcCount = 0;
var dist = new Array(distCount);
var dura = new Array(distCount);

var HOME_TO_START = 0;
var START_TO_END = 1;
var END_TO_HOME = 2;

var Veh1 = "Veh1";
var Veh2 = "Veh2";
var Veh3 = "Veh3";

var baseP = 0;
var baseKP = 0;
var transportKP = 0;
var timeFactor = 1;

var addressError = false;

window.onload = addVehicleNamesToButtons;

function getPrice(vehicleType) {
	showWaitingAnimation();
	clearResults();

	var zipStart = document.getElementById('zipStartInput').value;
	var zipEnd = document.getElementById('zipEndInput').value;

	setRates(vehicleType);

	distCalcCount = 0;
	addressError = false;
	calcDistanceAndPrice(HOME_TO_START, zipHome, zipStart);
	calcDistanceAndPrice(START_TO_END, zipStart, zipEnd);
	calcDistanceAndPrice(END_TO_HOME, zipEnd, zipHome);

	return true;
}

function clearResults() {
	document.getElementById('addressError').innerHTML = '';
	document.getElementById('vehicleError').innerHTML = '';
	document.getElementById('distance').innerHTML = '';
	document.getElementById('duration').innerHTML = '';
	document.getElementById('price').innerHTML = '';
	document.getElementById('googleCopyright').innerHTML = '';
}

function showWaitingAnimation() {
	var animation = document.getElementById("waitingAnimation");
	animation.innerHTML = '<img src="http://images/ajax-loader.gif">';
	animation.style.display = '';
}

function hideWaitingAnimation() {
	document.getElementById('waitingAnimation').style.display = "none";
}

function setRates(vehicle) {
	if (vehicle == Veh1) {
		baseP = 00;
		baseKP = 0.00;
		transportKP = 0.55;
		timeFactor = 1.1;
	}
	if (vehicle == Veh2) {
		baseP = 00;
		baseKP = 0.0;
		transportKP = 0.65;
		timeFactor = 1.2;
	}
	if (vehicle == Veh3) {
		baseP = 00;
		baseKP = 0.00;
		transportKP = 0.75;
		timeFactor = 1.4;
	}
}

function calcDistanceAndPrice(i, zipStart, zipEnd) {
	var request = {
		origin: zipStart,
		destination: zipEnd,
		region: "DE",
		travelMode: google.maps.TravelMode.DRIVING,
		unitSystem: google.maps.UnitSystem.METRIC,
		provideRouteAlternatives: false
	};
	directionsService.route(request, function(result, status) {
		if (status == google.maps.DirectionsStatus.OK) {
			dist[i] = result.routes[0].legs[0].distance.value / 1000;
			dura[i] = result.routes[0].legs[0].duration.value * timeFactor;
			if (i == START_TO_END) {
				document.getElementById('zipStartInput').value = result.routes[0].legs[0].start_address;
				document.getElementById('zipEndInput').value = result.routes[0].legs[0].end_address;
			}
		} else {
			addressError = true;
		}

		if (++distCalcCount == distCount) {
			if (addressError) {
				document.getElementById('addressError').innerHTML = 'Preisberechnung f&uuml;r diesen Start- und Zielort ist nicht m&ouml;glich...';
				document.getElementById('distance').innerHTML = 'k. A.';
				document.getElementById('duration').innerHTML = 'k. A.';
				document.getElementById('price').innerHTML = 'k. A.';
			} else {
				document.getElementById('price').innerHTML = Math.round(doPriceCalculation()) + " &euro;";
				document.getElementById('distance').innerHTML = Math.round(dist[START_TO_END]) + " km";
				var hours = Math.floor(dura[START_TO_END] / 3600);
				var minutes = Math.round(((dura[START_TO_END] / 3600) - hours) * 60);
				document.getElementById('duration').innerHTML = hours + " Std. " + minutes + " Min.";
				document.getElementById('googleCopyright').innerHTML = "Entfernungsberechnung basierend auf: " + result.routes[0].copyrights;
			}
			hideWaitingAnimation();
		}
	});
}

function doPriceCalculation() {
	return baseP + ((dist[HOME_TO_START] + dist[END_TO_HOME]) * baseKP) + (dist[START_TO_END] * transportKP);
}

function addVehicleNamesToButtons() {
	document.getElementById('btnVeh1').innerHTML = "PKW";
	document.getElementById('btnVeh2').innerHTML = "CADDY";
	document.getElementById('btnVeh3').innerHTML = "SPRINTER";
}

</script>

<div id="priceCalculator">
	<div style="margin-bottom:8px">
		<div class="errorMessage" id="addressError"> </div>
		<div class="errorMessage" id="vehicleError"> </div>
	</div>

	<div class="addressRow">
		<div class="addressLabel">Von:</div>
		<input class="addressInput" type="text" name="zipStartInput" id="zipStartInput" />
		<div style="clear:left;"></div>
	</div>

	<div class="addressRow">
		<div class="addressLabel">Nach:</div>
		<input class="addressInput" type="text" name="zipEndInput" id="zipEndInput" />
		<div style="clear:left;"></div>
	</div>

	<div class="vehicleButtonRow">
		<div class="vehicleButtonLabel">Berechnen:</div>
		<div class="vehicleButton" id="btnVeh1" onclick="getPrice('Veh1')"></div>
		<div class="vehicleButtonSpacer"></div>
		<div class="vehicleButton" id="btnVeh2" onclick="getPrice('Veh2')"></div>
		<div class="vehicleButtonSpacer"></div>
		<div class="vehicleButton" id="btnVeh3" onclick="getPrice('Veh3')"></div>
		<input type="hidden" name="vehicle" id="vehicle" value="" />
		<div style="clear:left;margin-top:0px"></div>
	</div>

	<div class="resultRow">
		<div class="priceButton" id="btnPrice"> </div>
		<div class="waitingAnimation">
			<div id="waitingAnimation" style="display:none;margin-left:10px;margin-top:7px"></div>
		</div>
		<div class="resultBox" id="distance"> </div>
		<div class="resultBoxSpacer"></div>
		<div class="resultBox" id="duration"> </div>
		<div class="resultBoxSpacer"></div>
		<div class="resultBox" id="price"> </div>
		<div class="googleCopyright" id="googleCopyright"> </div>
		<div style="clear:both;"></div>
	</div>
</div>		</div>
	</em></p>
<div> </div>
<p> </p>
ich hoffe dass sie mir helfen können
Mit Zitat antworten
  #19 (permalink)  
Alt 21.04.2016, 19:47
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Wo ost denn der Code von cloned? Ich seh den nicht.
Mit Zitat antworten
Sponsored Links
  #20 (permalink)  
Alt 21.04.2016, 20:25
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.04.2016
Beiträge: 13
med47 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von protonenbeschleuniger Beitrag anzeigen
Wo ost denn der Code von cloned? Ich seh den nicht.
dieser code hier ? ich bekomme es mit den werten nicht hin

Code:
var preis; 
if (response.routes[0].legs[0].distance.value < 10000) { //korrekten Wert bitte selber ermitteln
    preis = Mindestpreis; 
}
else {
   preis = Hier mathe-formel von oben einfügen
}
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus



Alle Zeitangaben in WEZ +2. Es ist jetzt 21:28 Uhr.