buttons maken op je website die input verwerkt in het script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Thomas Steenbergen

Thomas Steenbergen

31/03/2016 13:49:51
Quote Anchor link
Hallo allemaal,

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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)) . "'>";
    ?>


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="">&nbsp; huisnummer <input name='huisnummer' size=4 value=""> &nbsp; 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>
 
PHP hulp

PHP hulp

04/12/2024 20:36:23
 
Jan de Laet

Jan de Laet

31/03/2016 16:48:07
Quote Anchor link
Als je aan je form een action toevoegt met de url van je php script, dan kun je in dat script de ingevulde waardes ophalen met $_GET[];

Dus
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<form method='GET' name='sel' action='jouwphp.php'>


In jouw php doe je dan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
    $postcode = $_GET["postcode"];
    $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.
 
Thomas Steenbergen

Thomas Steenbergen

01/04/2016 07:34:52
Quote Anchor link
Super, dank je wel
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.