Postcode

/*
Voorbeeld code voor het gebruik van de postcode api van www.postcodedata.nl
Toont een formulier met postcode/huisnummer en vervolgens een formulier met gedetailleerde adres gegevens
*
Als een adres niet opgevraagd kan worden, dan wordt de error response van de api in tussen comments geprint,
zodat gebruikers deze niet zien, maar het resultaat wel (middels view source) gebruikt kan worden om te debuggen
*
Download ook postcodedataapi.php vanaf www.postcodedata.nl/api en plaats deze in dezelfde map
*/

require_once(‘postcodedataapi.php’);

if (array_key_exists(‘plaats’, $_REQUEST)){
//succes, hier kunnen de gegevens opgeslagen of gemaild worden
print “de volgende gegevens zijn (gesimuleerd) opgeslagen:

“;
foreach ($_POST as $name=>$value){
print “$name: $value
“;
}
}elseif (array_key_exists(‘postcode’, $_REQUEST) && array_key_exists(‘streetnumber’, $_REQUEST)){
//er is een postcode en huisnummer opgegeven
if (!($_REQUEST[‘streetnumber’] > 0 && $_REQUEST[‘streetnumber’] < = 99999)){ //ongeldig huisnummer, print het formulier voor postcode/huisnummer opnieuw print "helaas is er een ongeldige huisnummer ingevoerd"; print_postcode_form($_REQUEST['postcode'], $_REQUEST['streetnumber']); }elseif (!preg_match("/^[0-9]{4}\s*?[a-z]{2}$/i", $_REQUEST['postcode'])){ //ongeldige postcode, print het formulier voor postcode/huisnummer opnieuw print "helaas is er een ongeldige postcode ingevoerd"; print_postcode_form($_REQUEST['postcode'], $_REQUEST['streetnumber']); }else{ //haal de adres gegevens bij deze postcode en het huisnummer op $address=$_POST; //behoud de eerder opgeslagen postcode en huisnummer //haal het adres op: $json=get_address($_REQUEST['postcode'], $_REQUEST['streetnumber']); if ($json != false && array_key_exists('errormessage', $json) && $json['errormessage'] == 'no results'){ //no results is de enige errormessage die output voor de gebruiker heeft (namelijk er is een ongeldige postcode/huisnummer combinatie print "Volgens onze gegevens bestaat dit adres niet, kunt u het nogmaals controleren?
“;
print “postcode: “.$_REQUEST[‘postcode’].”
“;
print “huisnummer: “.$_REQUEST[‘streetnumber’].”

“;
print “Terug (dit klopt inderdaad niet)

“;
print “
of vul handmatig uw overige gegevens in:
“;
}elseif(array_key_exists(‘details’, $json) && count($json[‘details’]) > 0){
//voeg de nieuwe adres gegevens toe aan de postcode/huisnummer:
$address=array_merge($address, $json[‘details’][0]);
}
//print het formulier met adres gegevens:
print_address_form($address);
}
}else{
print ‘Vul eerst svp uw postcode en huisnummer in:
‘;
print_postcode_form();
}

function print_postcode_form($postcode=”, $streetnumber=”){
?>

Postcode:

< ? } function print_address_form($address){ //vertaal de velden van postcodedata.nl in de velden zoals je deze wilt opslaan/mailen: $formfields=array('postcode'=>‘postcode’,’streetnumber’=>’huisnummer’, ‘straat’=>’street’, ‘plaats’=>’city’, ‘gemeente’=>’municipality’, ‘provincie’=>’province’, ‘rd_x’=>’rd_x’, ‘rd_y’=> ‘rd_y’, ‘lat’=> ‘lat’, ‘lon’=> ‘lon’);
$values=array();
foreach ($formfields as $key=>$value){
if (array_key_exists($value, $address)){
$values[$key]=$address[$value];
}else{
$values[$key]=”;
}
}
//print het formulier (inclusief de eerder opgeslagen postcode/huisnummer hidden):
?>