Ik ben bezig met een overzicht van artiesten en wil daar wat filter mogelijkheden maken voor de bezoeker. Nu kwam ik deze website tegen: www.sportsspeakers.nl/sprekers | waar je kan filteren op verschillende mogelijkheden.

Hoe kan ik dit het beste doen? Ik heb gezocht en kwam ook deze website tegen jplist.com/togglefiltersexamples/radio-buttons-filters waarbij je data kan filteren met jquery. Zou dit een oplossing kunnen zijn of is dit weer niet seo vriendelijk?

Kan iemand hier wat over vertellen?
Voor elke entiteit een eigen php-document, lijkt me zwaar onnodig en lastig onderhoudbaar.

Heb je al eens gekeken hoe een routing-class werkt?
Ik heb dit voorbeeld gelezen: https://www.codediesel.com/php/how-do-mvc-routers-work/

Kan dan de routing van

site.nl/artiesten
site.nl/artiesten/popgroepen
site.nl/artiesten/zangers

Naar 1 pagina sturen artiesten.php

Het enige waar ik dan niet uit kom is hoe ik popgroepen of bijv. zangers kan filters uit mijn sql query. Hoe haal ik de informatie uit de path / url waarmee ik dan verder kan filteren in artiesten.php.



In de meeste gevallen is artiesten dan vaak een Controller in de wereld van MVC, en anders een los bestand. Hoe je de parameters kan behandelen ligt een beetje aan de router-functie die je gebruikt. Hoe je die eruit haalt kan met explode() maar dat is al uitgelegd in dit topic.

Als je er maar wel voor zorgt dat er een hiërarchie is aanwezig is, zoals Thomas zegt.
Kees Mulder op 14/01/2019 10:31:46
site.nl/artiesten/popgroepen?taal=nederlands&budget=1000

of zoals coolblue.nl

site.nl/artiesten/popgroepen/taal:nederlands/budget:1000

Dan lijkt mij het tweede beter, omdat het eerste deel een querystring bevat. In dat geval heb je een heleboel "/artiesten/popgroepen" pagina's die achter een zoekformulier zitten die niet bereikt worden.

Alle informatie zit in de tweede variant in je URL, dus als je zorgt dat je uitkomt bij /artiesten/popgroepen kijk je vervolgens welke <key>:<value> paren er verder in je URL zitten en of deze geldige waarden bevatten. Vervolgens kun je hiermee je query opbouwen.

Reageren