hoe krijg ik de ritprijs variable in mijn ideal script

Status
Niet open voor verdere reacties.

Gerrit1958

Gebruiker
Lid geworden
13 feb 2010
Berichten
27
Hallo ik heb de volgende vraag. Ik heb een rit prijs module ik plak hem hier onder even bij
Wat ik nu wil is de uitkomst het bedrag dus by ideal $amount in laten vullen ik kom er niet uit hoe ik dat doe of moet ik


HTML:
<html xmlns="http://www.w3.org/1999/xhtml"  xmlns:v="urn:schemas-microsoft-com:vml">
  <head>
<title>ADL Taxi ritprijs bereken module</title>
<meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" />
<meta name="description" content="Bereken uw ritprijs vanuit onze website">
<meta name="keywords" content="afstand, berekening, kosten, twee, plaatsen, postcode, tabel, distance, calculation">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">


<script src="http://maps.google.nl/maps?file=api&amp;v=2&amp;key=ABQIAAAA5Q874pfLQnJG5Ykmh4ApzBRybvMzcJj-UG0qwB6UJI1T93XHuxSv0tgrGOMAdvxJIVXmNCZwTFPaLw
" type="text/javascript"></script>
<script type="text/javascript">

    function initialize() 
    {
      if (GBrowserIsCompatible()) 
      {
        // nieuw object ZONDER parameters, want we willen nl. geen geschreven route EN geen map tonen....
        // [url]http://code.google.com/apis/maps/documentation/reference.html#GDirections[/url]
        gdir = new GDirections();
        GEvent.addListener(gdir,"load", set_distance); 
      }
    }

    function setDirections(fromAddress, toAddress, locale) 
    {
    // [url]http://code.google.com/apis/maps/documentation/reference.html#GDirectionsOptions[/url]
    gdir.load("from: " + fromAddress + " to: " + toAddress, {locale: locale, travelMode:G_TRAVEL_MODE_DRIVING,avoidHighways: false} );
    }

    function set_distance() 
    {
    // extra: foutafhandeling, kan handig zijn!!!
    handleErrors(); 
//    document.getElementById("afstand").innerHTML = (gdir.getDistance().meters); 
    
	var adl_afstand = gdir.getDistance().meters

	var prijsOnafgerond = (((adl_afstand/1000)-2)*2.2)+7.5
	
	prijs = Math.round(prijsOnafgerond * 100) / 100


	
	prijsEuro = 'Uw ritprijs op de taximeter bedraagt: € ' + prijs.toFixed(2)

    document.getElementById("ritprijs").innerHTML = prijsEuro; 
	}

//	aantal kilometers - 2 *2.2+7.5= prijs
    
  function handleErrors()
  {
  // [url]http://code.google.com/apis/maps/documentation/reference.html#GGeoStatusCode[/url]
   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
     alert("No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.\nError code: " + gdir.getStatus().code);
   else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
     alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + gdir.getStatus().code);
   else if (gdir.getStatus().code == G_GEO_MISSING_QUERY || gdir.getStatus().code == G_GEO_MISSING_ADDRESS)
     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("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code);
   else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
     alert("A directions request could not be successfully parsed.\n Error code: " + gdir.getStatus().code);
   else if (gdir.getStatus().code == G_GEO_UNAVAILABLE_ADDRESS)
     alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code);
   else if (gdir.getStatus().code == G_GEO_UNKNOWN_DIRECTIONS)
     alert("The GDirections object could not compute directions between the points mentioned in the query. This is usually because there is no route available between the two points, or because we do not have data for routing in that region.\n Error code: " + gdir.getStatus().code);     
   else if (gdir.getStatus().code == G_GEO_TOO_MANY_QUERIES)
     alert("The given key has gone over the requests limit in the 24 hour period or has submitted too many requests in too short a period of time.\n Error code: " + gdir.getStatus().code);     
    }

  </script>

<style type="text/css">
body {
	background-color: #5f5f5f;
	color: #fff;
	font-family: verdana, arial, helvetica, sans-serif;
	font-size: 11px;
	line-height: 18px;

}

#rittabel {
	border: 1px dashed #fff;
}

#ritprijs {
	font-weight: bold;
	font-size: 14px;
	color: #fff;
}

#euro {
	text-align: right;
	font-size: 13px;
}
#tableprijs {
	padding-top: 15px;
}
#rights {
	font-size: 9px;
	color: #ccc;
}
h1 {
	font-size: 16px;
	font-weight: bold;
}

</style>

  </head>
<body onload="initialize()" onunload="GUnload()">
<form action="#" onsubmit="setDirections(this.from.value, this.to.value, 'nl'); return false">
<table id="rittabel" cellspacing="5" cellpadding="5">
<tr>
	<td colspan="2">
	<h1>Prijs overige bestemmingen berekenen</h1>
	</td>
</tr>

<tr>
	<td colspan="2">
	Via het onderstaande formulier kunt u een berekening maken van de kosten voor het gebruik van onze diensten. Voer uw gegevens in en bereken uw ritprijs. De prijs is gebaseerd op een luxe voertuig met 4 zitplaaten. Indien u gebruik wilt maken van een minivan (tot 8 pers.), rekenen wij een toeslag van 15%.
	</td>
</tr>
<tr>
	<td colspan="2" style="height: 20px;">
	</td>
</tr>
<tr>
	<td>Voer uw postcode, adres of plaats van vertrek in: &nbsp;</td>

	<td valign="top"><input type="text" size="30" id="fromAddress" name="from" value="bijv.: Europaweg, Haarlem" onblur="if(this.value=='') this.value='bijv.: Europaweg, Haarlem';" onFocus="if(this.value=='bijv.: Europaweg, Haarlem') this.value='';"/></td>
</tr>
<tr>
	<td colspan="2" style="height: 20px;">
	</td>
</tr>
<tr>
	<td>Voer uw postcode, adres of plaats van aankomst in:&nbsp;</td>
	<td valign="top"><input type="text" size="30" id="toAddress" name="to" value="bijv.: 2011 LM, 64" onblur="if(this.value=='') this.value='bijv.: Schiphol';" onFocus="if(this.value=='bijv.: 2011 LM, 64') this.value='';"/></td>
</tr>
<tr>

	<td>&nbsp;</td>
	<td><input tabindex="1" name="submit" type="submit" value="Bereken ritprijs!" /></td>
</tr>
<tr>
	<td colspan="2" style="height: 20px;">
	<table border="0" width="100%" id="tableprijs">
	<tr>
		<td><div id="ritprijs"></div></td>
	</tr>
	<tr>

		<td id="rights">Aan deze prijsschatting kunnen geen rechten worden ontleend.</td>
	</tr>
</table>
	</td>

</tr>
</table>
</form>

dan heb ik hier de ideal script heb mijn gegeven even verijwderd

PHP:
<?php

require_once('ideal.class.php');

$partner_id  = '****'; // Uw mollie partner ID

//dus omdeze gaat het daar moet ik dus de uitkomst krijgen van de ritprijs berekening
$amount      = 118;    // Het af te rekenen bedrag in centen (!!!)


$description = 'Testbetaling'; // Beschrijving die consument op zijn/haar afschrift ziet.

$return_url  = 'http://www.uwdoamin.nl.nl/return.php'; // URL waarnaar de consument teruggestuurd wordt na de betaling
$report_url  = 'http://www.uwdomain.nl.nl/report.php'; // URL die Mollie aanvraagt (op de achtergrond) na de betaling om de status naar op te sturen

if (!in_array('ssl', stream_get_transports()))
{
	echo "<h1>Foutmelding</h1>";
	echo "<p>Uw PHP installatie heeft geen SSL ondersteuning. SSL is nodig voor de communicatie met de Mollie iDEAL API.</p>";
	exit;	
}

$iDEAL = new iDEAL_Payment ($partner_id);
//$iDEAL->setTestMode();

if (isset($_POST['bank_id']) and !empty($_POST['bank_id'])) 
{
	if ($iDEAL->createPayment($_POST['bank_id'], $amount, $description, $return_url, $report_url)) 
	{
		/* Hier kunt u de aangemaakte betaling opslaan in uw database, bijv. met het unieke transactie_id
		   Het transactie_id kunt u aanvragen door $iDEAL->getTransactionId() te gebruiken. Hierna wordt 
		   de consument automatisch doorgestuurd naar de gekozen bank. */
		
		header("Location: " . $iDEAL->getBankURL());
		exit;	
	}
	else 
	{
		/* Er is iets mis gegaan bij het aanmaken bij de betaling. U kunt meer informatie 
		   vinden over waarom het mis is gegaan door $iDEAL->getErrorMessage() en/of 
		   $iDEAL->getErrorCode() te gebruiken. */
		
		echo '<p>De betaling kon niet aangemaakt worden.</p>';
		
		echo '<p><strong>Foutmelding:</strong> ', $iDEAL->getErrorMessage(), '</p>';
		exit;
	}
}


/*
  Hier worden de mogelijke banken opgehaald en getoont aan de consument.
*/

$bank_array = $iDEAL->getBanks();

if ($bank_array == false)
{
	echo '<p>Er is een fout opgetreden bij het ophalen van de banklijst: ', $iDEAL->getErrorMessage(), '</p>';
	exit;
}

?>
<form method="post">
	<select name="bank_id">
		<option value=''>Kies uw bank</option>
		
<?php foreach ($bank_array as $bank_id => $bank_name) { ?>
		<option value="<?php echo $bank_id ?>"><?php echo $bank_name ?></option>
<?php } ?>

	</select>
	<input type="submit" name="submit" value="Betaal via iDEAL" />
</form>
 
Laatst bewerkt door een moderator:
Hey,

Ik weet niet precies hoe je deze scrips precies linkt, maar weet wel hoe je de prijs door kan geven:

In de javascript functie set_distance() wordt de prijs uitgerekent, deze moeten we doorgeven aan het idealscript.
Dus in de functie set_distance voegen we toe:

[JS] function set_distance()
{
// extra: foutafhandeling, kan handig zijn!!!
handleErrors();
// document.getElementById("afstand").innerHTML = (gdir.getDistance().meters);

var adl_afstand = gdir.getDistance().meters

var prijsOnafgerond = (((adl_afstand/1000)-2)*2.2)+7.5

prijs = Math.round(prijsOnafgerond * 100) / 100

window.location = "idealscript.php?bedrag="+prijs;

prijsEuro = 'Uw ritprijs op de taximeter bedraagt: € ' + prijs.toFixed(2)

document.getElementById("ritprijs").innerHTML = prijsEuro;
}[/JS]

We voegen dus na prijs = Math.round blabla toe:
window.location = "idealscript.php?bedrag="+prijs;

Zoals je ziet zal zodra de persoon op de submit knop drukt de pagina verspringen naar het ideal script.

Het ideal script moet ook een beetje aangepast worden, we moeten namelijk met een $_GET variable de prijs uit de url halen. Ook moeten we het bedrag in centen hebben, dit doen we door het bedrag te vermenigvuldigen met 100.

De variable $amount in het ideal script wordt:
$amount = $_GET["bedrag"]*100;

Mocht je nog vragen hebben, stel ze maar!

Gegroet, Michiel
 
Laatst bewerkt:
Hey,

Ik weet niet precies hoe je deze scrips precies linkt, maar weet wel hoe je de prijs door kan geven:

In de javascript functie set_distance() wordt de prijs uitgerekent, deze moeten we doorgeven aan het idealscript.
Dus in de functie set_distance voegen we toe:

[JS] function set_distance()
{
// extra: foutafhandeling, kan handig zijn!!!
handleErrors();
// document.getElementById("afstand").innerHTML = (gdir.getDistance().meters);

var adl_afstand = gdir.getDistance().meters

var prijsOnafgerond = (((adl_afstand/1000)-2)*2.2)+7.5

prijs = Math.round(prijsOnafgerond * 100) / 100

window.location = "idealscript.php?bedrag="+prijs;

prijsEuro = 'Uw ritprijs op de taximeter bedraagt: € ' + prijs.toFixed(2)

document.getElementById("ritprijs").innerHTML = prijsEuro;
}[/JS]

We voegen dus na prijs = Math.round blabla toe:
window.location = "idealscript.php?bedrag="+prijs;

Zoals je ziet zal zodra de persoon op de submit knop drukt de pagina verspringen naar het ideal script.

Het ideal script moet ook een beetje aangepast worden, we moeten namelijk met een $_GET variable de prijs uit de url halen. Ook moeten we het bedrag in centen hebben, dit doen we door het bedrag te vermenigvuldigen met 100.

De variable $amount in het ideal script wordt:
$amount = $_GET["bedrag"]*100;

Mocht je nog vragen hebben, stel ze maar!

Gegroet, Michiel
 
bijna

ik krijg in ieder geval nu by mijn index.php van ideal module in the url als het bedrag bv 183 is

index.php?bedrag=183

maar ik wil die waarde dus nu in hebben dus zeg maar dat hij in het invul blokje 183 neer zet
dat lukt me eigenlijk nog niet ;-)

<td align="left" valign="top">Bedrag (EURO) *</td>
<td align="left" valign="top"><input name="invoice_amount" type="text" value="";
></td>
 
Ah, zie nu dat het bedrag al in centen wordt doorgegeven.
Als je in het idealscript kijkt zie je staan:
$amount = 118 of iets dergelijks.
Dit is waar we het bedrag in moeten vullen van de ritprijs. Dit vervangen we dus door:
$amount = $_GET["bedrag"];
Dit zorgt ervoor dat hij het bedrag uit de url haalt.

Zie je wat je moet vervangen?

Gegroet, Michiel

EDIT:
Wil je in dat tekstvak wat je beschrijft ook het bedrag:
verander dit:
<td align="left" valign="top">Bedrag (EURO) *</td>
<td align="left" valign="top"><input name="invoice_amount" type="text" value=""; /></td>

in dit:
<td align="left" valign="top">Bedrag (EURO) *</td>
<td align="left" valign="top"><input name="invoice_amount" type="text" value="<?php echo $amount; ?>"; /></td>

Dit werkt mits je ook hierboven $amount op $_GET["bedrag"] hebt gezet.

Laat maar horen of het werkt!
 
Laatst bewerkt:
lol ik zal wel blond zijn maar ik krijg de echo $ amount tekst in de input van bedrag te zien en ik zie ook geen $amount = 118 in de index.php van de idealinvoice script

dit is de index.php script

<?php

/*
Facturatie Script
Ontwikkeld voor het ontvangen van betalingen m.b.v. iDEAL Lite (Rabobank) of iDEAL Basic (ING Bank).

Auteur: Martijn Wieringa
Email: info@php-solutions.nl
Website: http://www.php-solutions.nl
Licentie: http://creativecommons.org/licenses/by/3.0/nl/
*/


require_once(dirname(__FILE__) . '/library/ideallite.cls.php');
require_once(dirname(__FILE__) . '/library/utils.php');

$html = '';

if(empty($_POST['invoice_id']) || empty($_POST['invoice_amount']))
{
if(empty($_GET['ideal']['status'])) // Toon facturatie formulier
{
$html .= '
<p><b>Betaal uw factuur online!</b></p>
<form action="index.php" method="post">
<table align="center" border="0" cellpadding="0" cellspacing="4">
<tr>
<td align="left" valign="top" width="130">Klantnummer</td>
<td align="left" valign="top"><input name="customer_id" type="text" value=""></td>
</tr>
<tr>
<td align="left" valign="top">Factuurnummer *</td>
<td align="left" valign="top"><input name="invoice_id" type="text" value=""></td>
</tr>
<tr>
<td align="left" valign="top">Bedrag (EURO) *</td>
<td align="left" valign="top"><input name="invoice_amount" type="text" value=""></td>
</tr>
<tr>
<td align="left" valign="top">&nbsp;</td>
<td align="left" valign="top"><input type="submit" value="Verder &raquo;"></td>
</tr>
</table>
</form>';
}
else // Meld de status van de betaling
{
$sPaymentId = (empty($_GET['ideal']['id']) ? '' : $_GET['ideal']['id']);
$sPaymentCode = (empty($_GET['ideal']['code']) ? '' : $_GET['ideal']['code']);
$sPaymentStatus = ((empty($_GET['ideal']['status']) || (in_array($_GET['ideal']['status'], array('SUCCESS', 'CANCELLED', 'FAILURE')) == false)) ? 'FAILURE' : $_GET['ideal']['status']);

$sPaymentFile = dirname(__FILE__) . '/logs/' . $sPaymentId . '.' . $sPaymentCode . '.log';

if(is_file($sPaymentFile))
{
// Find order data
$aPaymentData = unserialize(readFromFile($sPaymentFile));

$bSendEmail = true;

if(in_array($aPaymentData['status'], array('', 'OPEN')))
{
$aPaymentData['status'] = $sPaymentStatus;

// Save order data
writeToFile($sPaymentFile, serialize($aPaymentData));
}
else
{
// Email already send for this order
$bSendEmail = false;
}

// Send confirmation to screen
if(strcasecmp($aPaymentData['status'], 'SUCCESS') === 0)
{
$html .= '<p>Uw betaling is met succes ontvangen.</p>';

if($bSendEmail)
{
// Send email to webmaster
$mail_to = 'info@php-solutions.nl'; // Verzend email naar
$mail_from = 'noreply@php-solutions.nl'; // Afzender van de email
$mail_subject = 'Factuur: ' . $aPaymentData['invoice_id'] . ' betaald!';
$mail_message = "\n\n" . 'Er is een betaling ontvangen.' . "\n\n" . 'Klant/debiteurnummer: ' . $aPaymentData['customer_id'] . "\n\n" . 'Factuurummer: ' . $aPaymentData['invoice_id'] . "\n\n" . 'Bedrag: ' . number_format($aPaymentData['invoice_amount'], 2, ',', '.') . "\n\n\n" . 'Controleer de status van deze betaling altijd via uw iDEAL Dashboard of bankrekening.';

@mail($mail_to, $mail_subject, $mail_message, 'From: ' . $mail_from);
}
}
else
{
$html .= '<p>Er is een fout opgetreden bij het verwerken van uw betaling.</p>';
}
}

$html .= '
<p><a href="index.php">Betaal een andere factuur.</a></p>';
}
}
else // Toon iDEAL Lite formulier (met AUTO SUBMIT)
{
$sPaymentId = date('YmdHis');
$sPaymentCode = randomCode(32);

$sCustomerId = (empty($_POST['customer_id']) ? '' : $_POST['customer_id']);
$sInvoiceId = $_POST['invoice_id'];
$fInvoiceAmount = floatval(str_replace(',', '.', $_POST['invoice_amount']));

$sPaymentFile = dirname(__FILE__) . '/logs/' . $sPaymentId . '.' . $sPaymentCode . '.log';

if($fInvoiceAmount >= 1) // Minimaal 1 euro
{
// Save order in folder
$aPaymentData = array('id' => $sPaymentId, 'code' => $sPaymentCode, 'customer_id' => $sCustomerId, 'invoice_id' => $sInvoiceId, 'invoice_amount' => $fInvoiceAmount, 'date' => date('Y-m-d'), 'time' => date('H:i:s'), 'ip' => $_SERVER['REMOTE_ADDR'], 'status' => '');
writeToFile($sPaymentFile, serialize($aPaymentData));

$oIdeal = new IdealLite();

// Bepaal de URL waar de bezoeker naar toe wordt gestuurd nadat de ideal betaling is afgerond (of bij fouten)
$sRootUrl = getRootUrl();

$oIdeal->setUrlCancel($sRootUrl . 'index.php?ideal[id]=' . $sPaymentId . '&ideal
Code:
=' . $sPaymentCode . '&ideal[status]=CANCELLED');
			$oIdeal->setUrlError($sRootUrl . 'index.php?ideal[id]=' . $sPaymentId . '&ideal[code]=' . $sPaymentCode . '&ideal[status]=FAILURE');
			$oIdeal->setUrlSuccess($sRootUrl . 'index.php?ideal[id]=' . $sPaymentId . '&ideal[code]=' . $sPaymentCode . '&ideal[status]=SUCCESS');

			// Set order details
			$oIdeal->setAmount($fInvoiceAmount); // Bedrag (in EURO's)
			$oIdeal->setOrderId($sPaymentId); // Unieke order referentie (tot 16 karakters)
			$oIdeal->setOrderDescription('Factuur: ' . $sInvoiceId); // Order omschrijving (tot 32 karakters)

			// Customize submit button
			$oIdeal->setButton('Verder >>');

			$html = '<p>Afrekenen via uw eigen bank.</p>' . $oIdeal->createForm();

			if(IDEAL_TEST_MODE == false)
			{
				$html .= '<script type="text/javascript"> function doAutoSubmit() { document.forms[0].submit(); } setTimeout(\'doAutoSubmit()\', 100); </script>';
			}
		}
		else
		{
			$html .= '<p>Ongeldig bedrag, probeer het op nieuw.<br><br><a href="index.php">Verder</a></p>';
		}
	}

	ideal_output($html);

?>
 
Je hebt nu ineens een ander ideal script? Wat was er mis met diegene uit je eerste post?daar kon je het bedrag zo aanpassen zoals ik in mijn post heb uitgelegd.
 
dus misschien kun jij testen maar ik krijg het niet aan de praat lol

hier is de module te downloaden

http://www.ideal-simulator.nl/ideal-donatie-script.html
ik heb op mijn local host een map in htdocs gemaakt daar alles in gezet
en in de dir van index.php de onderstaande bereken.html

en dit is de bereken.html



de instelling voor ideal zijn niet nodig want die fout melding krijg je pas na verder het gaat om het eerste scherm waar je de gevens in kan vullen daar wil ik dus bij bedrag de uit komst van
bereken.html hebben

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<title>ADL Taxi ritprijs bereken module</title>
<meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" />
<meta name="description" content="Bereken uw ritprijs vanuit onze website">
<meta name="keywords" content="afstand, berekening, kosten, twee, plaatsen, postcode, tabel, distance, calculation">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">


<script src="http://maps.google.nl/maps?file=api&amp;v=2&amp;key=ABQIAAAAafMzspKDYNUJxMaqYYhSSRTAnlbSjIaIuQyilGwMpNKpw71XMRTtmVfCQVvY-D08A63bdOZtBqA4rg
" type="text/javascript"></script>
<script type="text/javascript">

function initialize()
{
if (GBrowserIsCompatible())
{
// nieuw object ZONDER parameters, want we willen nl. geen geschreven route EN geen map tonen....
// http://code.google.com/apis/maps/documentation/reference.html#GDirections
gdir = new GDirections();
GEvent.addListener(gdir,"load", set_distance);
}
}

function setDirections(fromAddress, toAddress, locale)
{
// http://code.google.com/apis/maps/documentation/reference.html#GDirectionsOptions
gdir.load("from: " + fromAddress + " to: " + toAddress, {locale: locale, travelMode:G_TRAVEL_MODE_DRIVING,avoidHighways: false} );
}

function set_distance()
{
// extra: foutafhandeling, kan handig zijn!!!
handleErrors();
// document.getElementById("afstand").innerHTML = (gdir.getDistance().meters);

var adl_afstand = gdir.getDistance().meters

var prijsOnafgerond = (((adl_afstand/1000)-2)*2.2)+7.5

prijs = Math.round(prijsOnafgerond + 0.5)
window.location = "index.php?bedrag="+prijs;



prijsEuro = 'Uw ritprijs op de taximeter bedraagt: € ' + prijs.toFixed(2)

document.getElementById("ritprijs").innerHTML = prijsEuro;
}

// aantal kilometers - 2 *2.2+7.5= prijs

function handleErrors()
{
// http://code.google.com/apis/maps/documentation/reference.html#GGeoStatusCode
if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
alert("No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.\nError code: " + gdir.getStatus().code);
else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + gdir.getStatus().code);
else if (gdir.getStatus().code == G_GEO_MISSING_QUERY || gdir.getStatus().code == G_GEO_MISSING_ADDRESS)
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("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code);
else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
alert("A directions request could not be successfully parsed.\n Error code: " + gdir.getStatus().code);
else if (gdir.getStatus().code == G_GEO_UNAVAILABLE_ADDRESS)
alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code);
else if (gdir.getStatus().code == G_GEO_UNKNOWN_DIRECTIONS)
alert("The GDirections object could not compute directions between the points mentioned in the query. This is usually because there is no route available between the two points, or because we do not have data for routing in that region.\n Error code: " + gdir.getStatus().code);
else if (gdir.getStatus().code == G_GEO_TOO_MANY_QUERIES)
alert("The given key has gone over the requests limit in the 24 hour period or has submitted too many requests in too short a period of time.\n Error code: " + gdir.getStatus().code);
}

</script>

<style type="text/css">
body {
background-color: #252122;
color: #fff;
font-family: verdana, arial, helvetica, sans-serif;
font-size: 11px;
line-height: 18px;

}

#rittabel {
border: 1px dashed #fff;
}

#ritprijs {
font-weight: bold;
font-size: 14px;
color: #fff;
}

#euro {
text-align: right;
font-size: 13px;
}
#tableprijs {
padding-top: 15px;
}
#rights {
font-size: 9px;
color: #ccc;
}
h1 {
font-size: 16px;
font-weight: bold;
}

</style>

</head>
<body onload="initialize()" onunload="GUnload()">
<form action="#" onsubmit="setDirections(this.from.value, this.to.value, 'nl'); return false">
<table id="rittabel" cellspacing="5" cellpadding="5">
<tr>
<td colspan="2">
<h1>Prijs overige bestemmingen berekenen</h1>
</td>
</tr>

<tr>
<td colspan="2">
Via het onderstaande formulier kunt u een berekening maken van de kosten voor het gebruik van onze diensten. Voer uw gegevens in en bereken uw ritprijs. De prijs is gebaseerd op een luxe voertuig met 4 zitplaaten. Indien u gebruik wilt maken van een minivan (tot 8 pers.), rekenen wij een toeslag van 15%.
</td>
</tr>
<tr>
<td colspan="2" style="height: 20px;">
</td>
</tr>
<tr>
<td>Voer uw postcode, adres of plaats van vertrek in: &nbsp;</td>

<td valign="top"><input type="text" size="30" id="fromAddress" name="from" value="bijv.: Europaweg, Haarlem" onblur="if(this.value=='') this.value='bijv.: Europaweg, Haarlem';" onFocus="if(this.value=='bijv.: Europaweg, Haarlem') this.value='';"/></td>
</tr>
<tr>
<td colspan="2" style="height: 20px;">
</td>
</tr>
<tr>
<td>Voer uw postcode, adres of plaats van aankomst in:&nbsp;</td>
<td valign="top"><input type="text" size="30" id="toAddress" name="to" value="bijv.: 2011 LM, 64" onblur="if(this.value=='') this.value='bijv.: Schiphol';" onFocus="if(this.value=='bijv.: 2011 LM, 64') this.value='';"/></td>
</tr>
<tr>

<td>&nbsp;</td>
<td><input tabindex="1" name="submit" type="submit" value="Bereken ritprijs!" /></td>
</tr>
<tr>
<td colspan="2" style="height: 20px;">
<table border="0" width="100%" id="tableprijs">
<tr>
<td><div id="ritprijs"></div></td>
</tr>
<tr>

<td id="rights">Aan deze prijsschatting kunnen geen rechten worden ontleend.</td>
</tr>
</table>
</td>
</tr>

</table>
</form>



</body>
</html>
 
oo heb ik zeker per ongeluk idealdonate gepakt denk ik.

ben al zolang aan het klooien lol met die ene optie omdat ik het niet leuk vindt dat mensen zelf de rit pijs over moeten nemen uit het berkeken.html in de ideal module dat ik denk ik even in de war was met de eerste post
 
Dus welke gebruik je nou? De eerste; zoja heb ik denkik alle uitleg gegeven die je nodig hebt. Of de tweede?
Gegroet, Michiel
 
nee die ik als laaste gepost heb de ideal invoice script die geeft 3 invul velden ik heb er in mijn versie 1 verwijderd omdat er geen factuur nr is dus heb er 2

1 veld van postcode + huisnr
1 veld met bedrag

als ik weet hoe ik de uitkomst van de berekening er in krijg dan weet ik ook wel hoe ik postcode en huis nr er in krijg want dat werkt dan het zelfde ;-)
 
okay bedankt heb in middels even voor de gein de verkeerd script die ik gepost had gecheckt en inderdaad dat werkt prima. alleen kan ik daar geen eigen omschrijving invullen
dus ik moet nu even kijken of het me lukt uit het reservering formulier wat vooraf gaat aan de berekening module de string van de naam te er uit te halen zodat ik hem weer met de zelfde methode als jij met prijs gedaan hebt als omschrijving kan mee zenden.

Het form werkt met een procesor.php die een

Uw Naam: " . $_POST['field_1'] . "

geeft die field_1 wil ik dus ergens vandaan halen weet niet of ik dat kan omdat hij na het form eerst naar de berekening.html gaat

of wat ik ook kan doen is in de bereken.html een optie toevoegen

<tr>
<td>Om een betaling mogelijk te maken even hier nog even uw Naam invullen</td>
<td><input size="30" name="Naam" /></td>
</tr>
<tr>

maar hoe krijg ik die dan met window.location = net als de het bedrag boven in

ik neem aan dat ik dan eerst net als prijs

var prijsOnafgerond = (((adl_afstand/1000)-2)*2.2)+7.5

een var aan moet maken

hoe ziet die er dan uit?
 
Laatst bewerkt:
Denk dat ik nu heb wat je wil, alleen ik heb het bij Mollie gedaan (van je eerste script) omdat hier betere documentatie bij zat.
Wel moet je bij Mollie eerst je IDEAL activeren, anders zal het niet werken.

ritprijs.php:
PHP:
<?php
if(isset($_GET["bedrag"])){
	require_once('ideal.class.php');
	$bedrag 	 = $_GET["bedrag"];
	$van 	 	 = $_GET["van"];
	$naar 	 	 = $_GET["naar"];
	$partner_id  = '*****'; //Mollie ID
	$amount      = $bedrag;
	$description = "Taxirit van $van naar $naar."; // Beschrijving die consument op zijn/haar afschrift ziet.
	
	$return_url  = 'ritprijs.php?return=true'; // URL waarnaar de consument teruggestuurd wordt na de betaling
	$report_url  = 'report.php'; // URL die Mollie aanvraagt (op de achtergrond) na de betaling om de status naar op te sturen
	
	if (!in_array('ssl', stream_get_transports())){
		echo "<h1>Foutmelding</h1>";
		echo "<p>Uw PHP installatie heeft geen SSL ondersteuning. SSL is nodig voor de communicatie met de Mollie iDEAL API.</p>";
		exit;	
	}
	$iDEAL = new iDEAL_Payment ($partner_id);
	//$iDEAL->setTestMode(); //Wegcommenten als je hem echt gaat gebruiken
	
	if (isset($_POST['bank_id']) and !empty($_POST['bank_id'])){
		if ($iDEAL->createPayment($_POST['bank_id'], $amount, $description, $return_url, $report_url)){
			/* Hier kunt u de aangemaakte betaling opslaan in uw database, bijv. met het unieke transactie_id
		   	   Het transactie_id kunt u aanvragen door $iDEAL->getTransactionId() te gebruiken. Hierna wordt 
		       de consument automatisch doorgestuurd naar de gekozen bank. */
			header("Location: " . $iDEAL->getBankURL());
			exit;	
		}else{
			/* Er is iets mis gegaan bij het aanmaken bij de betaling. U kunt meer informatie 
		       vinden over waarom het mis is gegaan door $iDEAL->getErrorMessage() en/of 
		       $iDEAL->getErrorCode() te gebruiken. */
			echo '<p>De betaling kon niet aangemaakt worden.</p>';
			echo '<p><strong>Foutmelding:</strong> ', $iDEAL->getErrorMessage(), '</p>';
			exit;
		}
	}
/*
  Hier worden de mogelijke banken opgehaald en getoont aan de consument.
*/
	$bank_array = $iDEAL->getBanks();
	if ($bank_array == false){
		echo '<p>Er is een fout opgetreden bij het ophalen van de banklijst: ', $iDEAL->getErrorMessage(), '</p>';
		exit;
	}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<title>ADL Taxi ritprijs bereken module</title>
<meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" />
<meta name="description" content="Bereken uw ritprijs vanuit onze website">
<meta name="keywords" content="afstand, berekening, kosten, twee, plaatsen, postcode, tabel, distance, calculation">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="ritprijs.css"/>
<script src="http://maps.google.nl/maps?file=api&amp;v=2&amp;key=ABQIAAAAafMzspKDYNUJxMaqYYhSSRTAnlbSjIaIuQyilGwMpNKpw71XMRTtmVfCQVvY-D08A63bdOZtBqA4rg" type="text/javascript"></script>
<script type="text/javascript">
var from;
var to;
function initialize()
{
	if (GBrowserIsCompatible()){
		gdir = new GDirections();
		GEvent.addListener(gdir,"load", set_distance);
	}
}

function setDirections(fromAddress, toAddress, locale)
{
	from = fromAddress;
	to = toAddress;
	gdir.load("from: " + fromAddress + " to: " + toAddress, {locale: locale, travelMode:G_TRAVEL_MODE_DRIVING,avoidHighways: false});
}

function set_distance()
{
	handleErrors();
	var adl_afstand = gdir.getDistance().meters;
	var prijsOnafgerond = (((adl_afstand/1000)-2)*2.2)+7.5; //Prijs = aantal kilometers - 2 *2.2+7.5
	prijs = Math.round(prijsOnafgerond + 0.5);
	prijs = prijs*10;
	window.location = "ritprijs.php?bedrag="+prijs+"&van="+from+"&naar="+to;
}

function handleErrors()
{
	if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
		alert("No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.\nError code: " + gdir.getStatus().code);
	else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
		alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + gdir.getStatus().code);
	else if (gdir.getStatus().code == G_GEO_MISSING_QUERY || gdir.getStatus().code == G_GEO_MISSING_ADDRESS)
		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("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code);
	else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
		alert("A directions request could not be successfully parsed.\n Error code: " + gdir.getStatus().code);
	else if (gdir.getStatus().code == G_GEO_UNAVAILABLE_ADDRESS)
		alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code);
	else if (gdir.getStatus().code == G_GEO_UNKNOWN_DIRECTIONS)
		alert("The GDirections object could not compute directions between the points mentioned in the query. This is usually because there is no route available between the two points, or because we do not 	have data for routing in that region.\n Error code: " + gdir.getStatus().code);
	else if (gdir.getStatus().code == G_GEO_TOO_MANY_QUERIES)
		alert("The given key has gone over the requests limit in the 24 hour period or has submitted too many requests in too short a period of time.\n Error code: " + gdir.getStatus().code);
}
</script>
</head>
<body onload="initialize()" onunload="GUnload()">
<?php if(isset($_GET["return"])){ ?>
<p>Uw betaling is succesvol gedaan, mocht u nóg een rit willen plannen kan dit natuurlijk:</p>
<?php } ?>
<?php if(isset($_GET["bedrag"])){ ?>
	<form method="post">
		<select name="bank_id">
			<option value=''>Kies uw bank</option>
		<?php foreach ($bank_array as $bank_id => $bank_name) { ?>
			<option value="<?php echo $bank_id ?>"><?php echo $bank_name ?></option>
		<?php } ?>
		</select>
		<input type="submit" name="submit" value="Betaal via iDEAL" />
	</form>
<?php } ?>
<?php if(!isset($_GET["bedrag"])){ ?>
	<form action="#" onsubmit="setDirections(this.from.value, this.to.value, 'nl'); return false">
		<table id="rittabel" cellspacing="5" cellpadding="5">
			<tr>
				<td colspan="2">
					<h1>Prijs overige bestemmingen berekenen</h1>
				</td>
			</tr>
			<tr>
				<td colspan="2">
					Via het onderstaande formulier kunt u een berekening maken van de kosten voor het gebruik van onze diensten. Voer uw gegevens in en bereken uw ritprijs. De prijs is gebaseerd op een luxe voertuig met 4 zitplaaten. Indien u gebruik wilt maken van een minivan (tot 8 pers.), rekenen wij een toeslag van 15%.
				</td>
			</tr>
			<tr>
				<td colspan="2" style="height: 20px;"></td>
			</tr>
			<tr>
				<td>Voer uw postcode, adres of plaats van vertrek in: &nbsp;</td>
				<td valign="top"><input type="text" size="30" id="fromAddress" name="from" value="bijv.: Europaweg, Haarlem" onblur="if(this.value=='') this.value='bijv.: Europaweg, Haarlem';" onFocus="if(this.value=='bijv.: Europaweg, Haarlem') this.value='';"/></td>
			</tr>
			<tr>
				<td colspan="2" style="height: 20px;"></td>
			</tr>
			<tr>
				<td>Voer uw postcode, adres of plaats van aankomst in:&nbsp;</td>
				<td valign="top"><input type="text" size="30" id="toAddress" name="to" value="bijv.: 2011 LM, 64" onblur="if(this.value=='') this.value='bijv.: Schiphol';" onFocus="if(this.value=='bijv.: 2011 LM, 64') this.value='';"/></td>
			</tr>
			<tr>
				<td>&nbsp;</td>
				<td><input tabindex="1" name="submit" type="submit" value="Bereken ritprijs!" /></td>
			</tr>
			<tr>
				<td colspan="2" style="height: 20px;">
					<table border="0" width="100%" id="tableprijs">
						<tr>
							<td><div id="ritprijs"></div></td>
						</tr>
						<tr>
							<td id="rights">Aan deze prijsschatting kunnen geen rechten worden ontleend.</td>
						</tr>
					</table>
				</td>
			</tr>
		</table>
	</form>
<?php } ?>
</body>
</html>

ritprijs.css:
Code:
body {
background-color: #252122;
color: #fff;
font-family: verdana, arial, helvetica, sans-serif;
font-size: 11px;
line-height: 18px;

}

#rittabel {
border: 1px dashed #fff;
}

#ritprijs {
font-weight: bold;
font-size: 14px;
color: #fff;
}

#euro {
text-align: right;
font-size: 13px;
}
#tableprijs {
padding-top: 15px;
}
#rights {
font-size: 9px;
color: #ccc;
}
h1 {
font-size: 16px;
font-weight: bold;
}

Je zou deze kunnen testen, maar dan moet je wel eerst je IDEAL activeren bij mollie.

Heb je dit gedaan en het werkt nóg niet dan zal ik nog kijken waarom niet:)

Maar test eerst dit even uit!

Gegroet,
Michiel
 
bijna goed

nou hij was bijna goed ;-) alleen moest het bedrag niet maal 10 en
heb ik
if(isset($_GET["bedrag"])){
require_once('ideal.class.php');
$bedrag = $_GET["bedrag"];
$van = $_GET["van"];
$naar = $_GET["naar"];
$partner_id = '*****'; //Mollie ID
$amount = $bedrag;
$description = "Taxirit van $van naar $naar."; // Beschrijving die consument op zijn/haar afschrift ziet.

veranderd in
require_once('ideal.class.php');
$partner_id = '*****'; // Uw mollie partner ID
$amount = $_GET["bedrag"]*100; // Het af te rekenen bedrag in centen (!!!)
$description = $_GET["van"]; // Beschrijving die consument op zijn/haar afschrift ziet.

dus gelijk GET achter $discription :-)


maar hij werkt nu prima 1 postcode was genoeg gaat er maar om dat een betaling aan een formulier gematcht kan worden.

dus heel hartelijk dank daar voor.

Wat ik nog wel mooi zou vinden is dat het betaal via ideal in het midden van het scherm zou komen met het ideal.jpg plaatje er boven em onder het plaatje de vermelding het bedrag dat u moet betalen is (waarde van de berekening)
 
Nu krijgen je klanten dus als beschrijving op hun rekening waar de taxirit begon. Is dit wat je wilde?

IDeal plaatje etc zal je vast wel ergens kunnen vinden, en het Bank formpje kan je gewoon stylen zoals je het wilt hebben. En om het bedrag op te roepen gebruik je gewoon <?php echo $_GET["bedrag"]; ?>

Heb je het betalen al getest? Zoja, werkte het?

Groet,
Michiel
 
ja het betalen werkt hehe heb de styling ook voor elkaar en alleen het bedrag nog maar dat zie ik net staan hoe dat moet dus hij werkt perfect nu ;-) weer heel wat geleerd deze dagen ;-)


hehe ja ik wilde in ieder geval een waarde hebben waar ik de betaling aan kon koppelen

zat eerst nog te denken ik maak in de berekeningritprijs.html nog een input veld aan waar mensen
van postcode
naar postcode
naam ( dat ze hier ook hun naam invullen en dat ik die dan als id gebruikt in ideal

maar zo kan het ook al denk ik wel dat ik dat nu zelf ook wel kan aanpassen als ik wil ;-)

maar hij staat nu mooi in het midden met het ideal plaatje er boven en het bedrag wat ze moeten betalen hehe want eerst moest mensen eerst naar hun bank scherm om te zien wat de rit koste ;-) heb gewoon een ccs gemaakt voor de styling
<html>
<head>
<style type="text/css">

html, body, form, div
{
margin: 0px;
padding: 0px;
}

div.wrapper
{
padding: 50px 0px 0px 0px;
text-align: center;
}

p, td, li
{
font-family: Arial;
font-size: 15px;
}

</style>

</head>
<body>

<div class="wrapper">
<p><img alt="iDEAL" border="0" src="images/ideal.gif"></p></p>Het bedrag dat u moet betalen is €&nbsp;<?php echo $_GET

["bedrag"]; ?>



</div>

</body>
</html><center>
 
Laatst bewerkt:
ja ik ook ziet er netjes uit nu


even een andere vraag weet jij een java script of php script wat kijkt naar de datum?
en tijd zeg maar dat dat mensen op 25 februari om 10 uur het formulier invullen en bij ophaal datum 25-02-2010 tijd 14:00 invullen hij zegt u kunt alleen 12 uur van te voren online reserveren bel *********** als 12 uur lastig is dan ben ik ook al blij als hij alleen naar de datum kijkt dan hou ik het op u kunt alleen 1 dag van te voren online reserveren bel********

en hoe krijg ik een een mail optie aan het ingevulde e-mail field? nu stuurt hij alleen een mail naar mezelf maar ik wil dat de zelfde e-mail ook naar de invuller gaat

dit is mijn procesor.php ik wil dus ook dat field_13 een email verzenden

<?php

$where_form_is="http://".$_SERVER['SERVER_NAME'].strrev(strstr(strrev($_SERVER['PHP_SELF']),"/"));


session_start();
if( ($_SESSION['security_code']==$_POST['security_code']) && (!empty($_POST['security_code'])) ) {
mail("mijneigenemail@domain.nl","Reservering ADLTAXI","Form data:


Uw Naam: " . $_POST['field_1'] . "
Van Adres: " . $_POST['field_2'] . "
Postcode: " . $_POST['field_3'] . "
Woonplaats: " . $_POST['field_4'] . "
Land: " . $_POST['field_5'] . "
Naar Adres: " . $_POST['field_6'] . "
Postcode: " . $_POST['field_7'] . "
Woonplaats: " . $_POST['field_8'] . "
Land: " . $_POST['field_9'] . "
Ophaal Datum: " . $_POST['field_10'] . "
Tijd van Ophalen: " . $_POST['field_11'] . "
Uw Telefoon nummer: " . $_POST['field_12'] . "
Uw E-Mail Adres: " . $_POST['field_13'] . "


");

include("confirm.html");
}
else {
echo "Invalid Captcha String.";
}

?>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan