buttons maken op je website die input verwerkt in het script
ik ben beginnend gebruiker van php en wil graag een websiteje maken. Ik heb een php scriptje gemaakt dat werkt. Het script kan een plaatje printen op de website als je je postcode en huisnummer invoert. Dit scriptje werkt, maar alleen als ik vanuit mijn script mijn $postcode en $huisnummer invul (zie hieronder het script). Nu wil ik eigenlijk buttons maken op mijn website: postcode, huisnummer, toevoeging. Hier kan je dan je postcode invullen en met een knop submit dan het plaatje op de kaart genereren. Zoiets zou moeten kunnen met de $_GET functie, maar ik kom er niet uit. Ik had in html via een 'form' al de knoppen gemaakt, maar wellicht werkt dit beter in php ook? Ik heb hieronder mijn php script en het stukje html hoe ik de buttons heb aangemaakt. Kan een van jullie mij helpen hiermee? Alvast heel erg bedankt!
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
//demo script om er voor te zorgen dat je de meest recente geocoder en top25 kaart aanspreekt
//gemaakt op 18-03-2016
//door Thomas Steenbergen
//hier worden de buttons gevuld vanuit de website. In dit geval postcodes (nu nog handmatig ingevuld)
$postcode = "1056SW";
$huisnummer = "11";
$toevoeging = "";
//dit is de output bounding box voor de TOP25 kaart die ingevuld word vanuit de site (nu nog handmatig ingevuld)
$outputx = "3";
$outputy = "3";
//hier wordt de geocoder geactiveerd
$url = "http://geodata.nationaalgeoregister.nl/geocoder/Geocoder?zoekterm=$postcode+$huisnummer+$toevoeging";
$data = file_get_contents($url);
$xml = simplexml_load_string($data);
//vanuit de xml wordt gezocht naar de regel waar coordinaten in staan
$coord = $xml-> xpath ('/xls:GeocodeResponse/xls:GeocodeResponseList/xls:GeocodedAddress/gml:Point/gml:pos');
//hier gaan we even de output string in 2 variabelen plaatsen, het x- en y-coordinaat
list($xcoord, $ycoord) = explode(' ', $coord[0]);
//hier gaan we er voor zorgen dat de coordinaten naar duizendtallen naar beneden afgerond worden
$xcoordrnd = substr($xcoord, 0, 3)."000";
$ycoordrnd = substr($ycoord, 0, 3)."000";
//hier gaan we een if then else statement maken die de bounding box maakt voor de x en y linker en rechter bounding box
//die tevens ook de hoogte en breedte aanpast afhankelijk van de input
if ($outputx == "1"){
$xleftbnd = $xcoordrnd;
$xrightbnd = $xcoordrnd + 1000;
$width = 300;
}
else if ($outputx == "3"){
$xleftbnd = $xcoordrnd - 1000;
$xrightbnd = $xcoordrnd + 2000;
$width = 600;
}
else if ($outputx == "5"){
$xleftbnd = $xcoordrnd - 2000;
$xrightbnd = $xcoordrnd + 3000;
$width = 900;
}
else if ($outputx == "7"){
$xleftbnd = $xcoordrnd - 3000;
$xrightbnd = $xcoordrnd + 4000;
$width = 1200;
}
if ($outputy == "1"){
$yleftbnd = $ycoordrnd;
$yrightbnd = $ycoordrnd + 1000;
$height = 300;
}
else if ($outputy == "3"){
$yleftbnd = $ycoordrnd - 1000;
$yrightbnd = $ycoordrnd + 2000;
$height = 600;
}
else if ($outputy == "5"){
$yleftbnd = $ycoordrnd - 2000;
$yrightbnd = $ycoordrnd + 3000;
$height = 900;
}
else if ($outputy == "7"){
$yleftbnd = $ycoordrnd - 3000;
$yrightbnd = $ycoordrnd + 4000;
$height = 1200;
}
//hier gaan we de output van de bounding box en van de hoogte/breedte in het getmap request verwerken en vervolgens tonen op de website
$urlgeo = "http://geodata.nationaalgeoregister.nl/top25raster/wms?request=GetMap&service=WMS&version=1.3.0&request=GetMap&layers=top25raster&width=$width&height=$height&bbox=$xleftbnd,$yleftbnd,$xrightbnd,$yrightbnd&srs=EPSG:28992&format=image/png";
echo "<img src='data:image/png;base64," . base64_encode(file_get_contents($urlgeo)) . "'>";
?>
//demo script om er voor te zorgen dat je de meest recente geocoder en top25 kaart aanspreekt
//gemaakt op 18-03-2016
//door Thomas Steenbergen
//hier worden de buttons gevuld vanuit de website. In dit geval postcodes (nu nog handmatig ingevuld)
$postcode = "1056SW";
$huisnummer = "11";
$toevoeging = "";
//dit is de output bounding box voor de TOP25 kaart die ingevuld word vanuit de site (nu nog handmatig ingevuld)
$outputx = "3";
$outputy = "3";
//hier wordt de geocoder geactiveerd
$url = "http://geodata.nationaalgeoregister.nl/geocoder/Geocoder?zoekterm=$postcode+$huisnummer+$toevoeging";
$data = file_get_contents($url);
$xml = simplexml_load_string($data);
//vanuit de xml wordt gezocht naar de regel waar coordinaten in staan
$coord = $xml-> xpath ('/xls:GeocodeResponse/xls:GeocodeResponseList/xls:GeocodedAddress/gml:Point/gml:pos');
//hier gaan we even de output string in 2 variabelen plaatsen, het x- en y-coordinaat
list($xcoord, $ycoord) = explode(' ', $coord[0]);
//hier gaan we er voor zorgen dat de coordinaten naar duizendtallen naar beneden afgerond worden
$xcoordrnd = substr($xcoord, 0, 3)."000";
$ycoordrnd = substr($ycoord, 0, 3)."000";
//hier gaan we een if then else statement maken die de bounding box maakt voor de x en y linker en rechter bounding box
//die tevens ook de hoogte en breedte aanpast afhankelijk van de input
if ($outputx == "1"){
$xleftbnd = $xcoordrnd;
$xrightbnd = $xcoordrnd + 1000;
$width = 300;
}
else if ($outputx == "3"){
$xleftbnd = $xcoordrnd - 1000;
$xrightbnd = $xcoordrnd + 2000;
$width = 600;
}
else if ($outputx == "5"){
$xleftbnd = $xcoordrnd - 2000;
$xrightbnd = $xcoordrnd + 3000;
$width = 900;
}
else if ($outputx == "7"){
$xleftbnd = $xcoordrnd - 3000;
$xrightbnd = $xcoordrnd + 4000;
$width = 1200;
}
if ($outputy == "1"){
$yleftbnd = $ycoordrnd;
$yrightbnd = $ycoordrnd + 1000;
$height = 300;
}
else if ($outputy == "3"){
$yleftbnd = $ycoordrnd - 1000;
$yrightbnd = $ycoordrnd + 2000;
$height = 600;
}
else if ($outputy == "5"){
$yleftbnd = $ycoordrnd - 2000;
$yrightbnd = $ycoordrnd + 3000;
$height = 900;
}
else if ($outputy == "7"){
$yleftbnd = $ycoordrnd - 3000;
$yrightbnd = $ycoordrnd + 4000;
$height = 1200;
}
//hier gaan we de output van de bounding box en van de hoogte/breedte in het getmap request verwerken en vervolgens tonen op de website
$urlgeo = "http://geodata.nationaalgeoregister.nl/top25raster/wms?request=GetMap&service=WMS&version=1.3.0&request=GetMap&layers=top25raster&width=$width&height=$height&bbox=$xleftbnd,$yleftbnd,$xrightbnd,$yrightbnd&srs=EPSG:28992&format=image/png";
echo "<img src='data:image/png;base64," . base64_encode(file_get_contents($urlgeo)) . "'>";
?>
en zo had ik die knoppen gemaakt voor mn website:
Quote:
<form method='GET' name='sel'>
<table>
<tr><td>postcode<td><input name='postcode' size=8 value=""> huisnummer <input name='huisnummer' size=4 value=""> toevoeging <input name='toevoeging' size=4 value="">
<tr><td><input type=submit value='Make map' OnClick="document.sel.submit(); show('bewaar')">
</table>
<hr style='margin-bottom: 1px'>
</form>
<table>
<tr><td>postcode<td><input name='postcode' size=8 value=""> huisnummer <input name='huisnummer' size=4 value=""> toevoeging <input name='toevoeging' size=4 value="">
<tr><td><input type=submit value='Make map' OnClick="document.sel.submit(); show('bewaar')">
</table>
<hr style='margin-bottom: 1px'>
</form>
Dus
In jouw php doe je dan:
Code (php)
1
2
3
2
3
$postcode = $_GET["postcode"];
$huisnummer = $_GET["huisnummer"];
$toevoeging = $_GET["toevoeging"];
$huisnummer = $_GET["huisnummer"];
$toevoeging = $_GET["toevoeging"];
Dit is een beetje kort door de bocht.
Ik zou in de php zeker de controle van de velden nog toevoegen zoals of ze wel bestaan en ingevuld zijn.
Super, dank je wel