In form plaatsnaam tonen op basis van 4 cijfers van de postcode html form.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jan te Pas

Jan te Pas

27/03/2018 09:02:20
Quote Anchor link
Ik heb een complete postcodetabel met 4 cijfers. Nu wil ik dat de gebruiker een postcode ingeeft, 4 cijfers, waarbij dan de plaats getoond wordt. Ik wil het formulier dus niet posten. Dit zal dus via een script moeten gebeuren. Via een select uit de database, kan maar is met deze aantallen geen lolletje. Dus voor mij een no go. Er moet dus een andere manier zijn, want die is er altijd. Dus ik wil dit in het formulier al gebruiken. Wat zou jullie voorstel zijn. Iemand suggesties?
 
PHP hulp

PHP hulp

20/04/2024 09:34:15
 
- Ariën  -
Beheerder

- Ariën -

27/03/2018 09:39:23
Quote Anchor link
Via AJAX zou je dit prima op kunnen halen, lijkt mij, als iemand het veld verlaat, en als de postcode gevalideerd is op het juiste formaat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
/^[1-9][0-9]{3}[\s]?[A-Za-z]{2}$/i


Maar, op grond waarvan is volgens jouw een SELECT uit de database geen lolletje? Of laat je je bangmaken door de enorme(?) hoeveelheid aan plaatsnamen?
Gewijzigd op 27/03/2018 09:41:51 door - Ariën -
 
Jan te Pas

Jan te Pas

27/03/2018 11:13:54
Quote Anchor link
Hoi Ariën, Ik heb een lijst met ruim 4800 postcode in de database staan. Als je die dan in een select op gaat nemen, kost het inladen te veel tijd voor de gebruiker. Ik denk vanuit mijn schulpje. Wellicht iets te klein...Validatie is geen probleem. Echter de lijst vind ik wel.
 
- Ariën  -
Beheerder

- Ariën -

27/03/2018 11:16:24
Quote Anchor link
Dat zou normaal écht geen probleem moeten zijn. Wat is de laadtijd, en wat is de achterliggende querie? En heb je al indexes aangelegd op je tabel?
 
- SanThe -

- SanThe -

27/03/2018 11:24:25
Quote Anchor link
Jan te Pas op 27/03/2018 11:13:54:
Hoi Ariën, Ik heb een lijst met ruim 4800 postcode in de database staan. Als je die dan in een select op gaat nemen, kost het inladen te veel tijd voor de gebruiker.


Je haalt maar 1 plaatsnaam op en niet alle 4800.
Dus geen enkel probleem lijkt mij.
 
Jan R

Jan R

27/03/2018 11:32:11
Quote Anchor link
Wat doe je bij postcodes welke meerdere gemeenten hebben?
In België kan dit oplopen. 3700==>19

Wat doe je voor zipcode in Nederland?
 
Ben van Velzen

Ben van Velzen

27/03/2018 11:42:15
Quote Anchor link
Een postcode in Nederland is altijd 1 straatnaam, vaak zelfs maar een deel van die straat. Dus totaal niet te vergelijken. Het is gewoon een call naar een van de vele beschikbare APIs.
19 resultaten is een kleinigheid, een totale set van 4800 ook. Als die query langzaam is moet je eens kijken naar je query. EXPLAIN is je grootste vriend hier. Daaruit kun je afleiden of je je indexes goed gezet hebt.
Gewijzigd op 27/03/2018 11:43:57 door Ben van Velzen
 
Jan te Pas

Jan te Pas

27/03/2018 13:24:56
Quote Anchor link
Dank voor jullie antwoord. Ik heb de tabel in mysql staan. En hoe krijg ik dan als iemand in een formulierveld de 4 cijfers invult, de plaatsnaam uit de database erbij? Zonder dat ik het formulier post. Want er staan meer gegevens op die ingevuld moeten worden. Is dat met een jquery? Daar heb ik nog geen kaas van gegeten. Maar nooit te laat om te leren..... Dank allen.
 
Adoptive Solution

Adoptive Solution

27/03/2018 13:38:06
Quote Anchor link
Niet helemaal wat je zoekt, maar wellicht inspireert het.

In plaats van letters zoek je op cijfers :

http://adoptive.esy.es/autocomplete/
 
Jan te Pas

Jan te Pas

27/03/2018 14:00:43
Quote Anchor link
@Adoptive Solution, dank je wel. Hier duik ik in. Top voor de tip.
 
Rob Doemaarwat

Rob Doemaarwat

27/03/2018 15:29:17
Quote Anchor link
- SanThe - op 27/03/2018 11:24:25:
Jan te Pas op 27/03/2018 11:13:54:
Hoi Ariën, Ik heb een lijst met ruim 4800 postcode in de database staan. Als je die dan in een select op gaat nemen, kost het inladen te veel tijd voor de gebruiker.


Je haalt maar 1 plaatsnaam op en niet alle 4800.
Dus geen enkel probleem lijkt mij.

Volgens mij bedoelt Jan een <select> (en jullie een SELECT * FROM ...). Een <select> met 4800 <option>'s is inderdaad een beetje gortig.

Maar inderdaad, AJAX is de way-to-go dan (en dan bedoel ik dit https://nl.wikipedia.org/wiki/Asynchronous_JavaScript_and_XML, en niet de voetbalclub).
 
Thomas van den Heuvel

Thomas van den Heuvel

27/03/2018 16:21:18
Quote Anchor link
Aanvullend / alternatief: maak gebruik van de Google Maps API. Als je dan postcodes invult die nog niet in je database staan kun je deze aanvullen in de database zodat resultaten gecached worden, zodat deze slechts eenmalig opgehaald hoeven te worden vanuit de Google Maps API.
Gewijzigd op 27/03/2018 16:21:39 door Thomas van den Heuvel
 
Jan te Pas

Jan te Pas

27/03/2018 16:27:09
Quote Anchor link
Hoi Rob en Thomas,
Ik wil geen inderdaad geen <select> En </select> gebruiken ivm de aantallen. Wederom dank voor de zoekrichting en het licht!
 



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.