ik heb een landenlijst welke uit een array bestaat van land+waarde, zodat ongeacht welke taal de site is altijd 'netherlands' wordt gezocht, ook als de landenlijst 'Niederlande' of 'pay-bas' aangeeft. Dit gedeelte werkt. Maar nu wil ik NA de eerste zoekopdracht een dropdown hebben welke bij het gekozen land hoort, voor de provincies. Aangezien deze niet snel en/of vaak zullen veranderen hoeven ze niet uit een DB te komen. Ik krijg op geen enkele door mij geprobeerde manier de lijst geselecteerd (of zelfs maar actief).
Dus in een notendop:
1. selectie maken en zoekrsultaten tonen ($country=nederland)
2. in het zoekmenuutje moet nu ook een dropdown komen waarbij de provincies zichtbaar zijn en meegenomen kunnen worden in de volgende zoekopdracht (waar country nog steeds nederland is maar provincie als filter wordt gebruikt).
Ik ben absoluut beginner en heb ook gekeken naar JScript maar dat wil ik als het kan vermijden. Iemand een hint waar ik de oplossing zou kunnen vinden? Ik heb al geprobeerd om met een IF statement een query uit te voeren maar dat lukte me niet. Nu wil ik eigenlijk een hardcoded lijst hebben waarin de provincies (per land) staan....
Als je dit goed wilt doen/gedaan hebt, heb je nu een database met daarin landen, deze landen hebben een id en een naam en eventueel meer.
Nu maak je ook een tabel provincies, met een id, een country_id en naam en eventueel meer.
Aan de hand van de gekozen country_id kun jij dan de provincies ophalen.
Hardcoded zou ik niet doen, je kunt het nu direct netjes oplossen, heb je later plezier van
Het automatisch , zonder pagina verversing aanpassen van de tweede selectbox kun je met javascript of Ajax doen, met ajax kun je het wat degelijker maken dan met javascript , in dit geval.
@jan
Da's wat ik bedoel! Alleen weet ik nu nog niet oe het werkt :)
@ Jason de Ridder
Die kwam ik met google ook tegen, maar daar kon ik het meertalig gedeelte (welke ik nu eindelijk werkend heb gekregen) niet in kwijt.
@Baarr
Dat had ik geprobeerd, maar kreeg geen resultaten terug (in ieder geval werd niets weergegeven). Ik heb de query meerdere malen nagekeken, met de manual erbij, maar kreeg 'm niet te zien (de selectbox dan). Ik ga het nog eens opnieuw proberen.
nu werkt de selectie wel! Maar de problemen zijn nu:
1. bij het openen van de site staat er nog geen provinciemenu (ook niet met de waarde -geen land geselecteerd-), die staat er wel ná een zoekopdracht en blijft dan ook staan.
2 volgend op punt 1; na een zoekopdracht blijft de waarde van de provincie gelijk, ook als ik het land wijzig. Er moet dus eerst een zoekopdracht worden gedaan zonder resultaten (omdat friesland nu eenmaal niet in spanje ligt) en pas dan kan ik een nieuwe selectie maken voor de spaanse provincies.
3 het originele zoekmenu (met landen) zit in mijn 'headertemplate.php' en de provincie-query gaat via advanced.php (waar de waardes van de zoekopdracht worden opgenomen) naar search.php voor het resultaat. Als ik alles verplaats naar de headertemplate werkt het niet. In de headertemplate zit een JS die de waardes onthoud van de zoekopdracht zodat de checkboxes en selectboxes blijvend de waardes weergeven van de huidige zoekopdracht. Bij provincies gaat ook dat verloren :/
Dus al-met-al heb ik dit volledig verkeerd benaderd (denk ik). Het was wel goed om dit als oefening te doen, maar helaas onbruikbaar.
Het voorbeeld van Jan Koehoorn blijkt dan toch de correcte oplossing te zijn voor wat ik nu eigenlijk wil.
was ik aan het bumpen dan? Ik deed alleen een followup n.a.v. baarr's suggestie, en het resultaat ervan (heb alles opnieuw gedaan)?!
Ik was zojuist je posting over de selectboxen aan het lezen, ziet er complex uit maar ga zeker proberen er wijs uit te komen!
Bumpen is twee keer na elkaar in je eigen topic posten binnen 24 uur. Het antwoord is dus: ja, je was aan het bumpen ;-) Het is je vergeven, maar let er gewoon even op.
Die posting over de selectboxen is inderdaad niet echt voor de superbeginners, maar als je een beetje in de code duikt, moet je een heel eind kunnen komen. Via AJAX haal ik gegevens op van een pagina die via PHP met een MySQL DB communiceert. Zo kun je een tweede selectbox aanpassen naar aanleiding van de geselecteerde waarde in de eerste, zonder een page refresh.
Ik wil je best helpen met voorbeeldcode, maar we proberen hier op phphulp een beetje verandering te brengen in de "geef me een script" mentaliteit. Ik beschuldig jou daar trouwens niet van, maar verwacht wel een beetje tweerichtingverkeer. Heb je zelf al iets gescript of geprobeerd?
@jp, ik weet niet in hoeverre je nu met je code bent, maar in principe heb je 2 manieren om het op te lossen.
1. Je haalt alle landen en alle provincies uit de database, zet ze allemaal in een javascript array en gebruik dan javascript functies om de onderste afhankelijk te laten zijn van de bovenste.
2. De mooiere manier is om alleen de landen op te halen, die in de selectbox te zetten en dan een onChange op die selectbox die met een Ajax call de tweede selectbox vult.
Maar zoiets had Jan ook al gezegd zag ik net, als je er niet uit komt dan laat maar eens wat code zien.
Ik heb het nu werkend gekregen met de selectbox die ik had voor de landen en een AJAX file die voor de provincies zorgt. Werkt inderdaad wel snel!! Ik heb de AJAX overigens niet zelf gemaakt, maar een bestaand script aangepast en aan mijn bestaande code toegevoegd. Nu is het alleen nog proberen om ook de waardes van de provincies zo te maken dat deze ook geselecteerd blijven bij een zoekopdracht (en alle daarop volgende templates).
Als je de code wilt dan is dat geen probleem (copyright notices van de AJAX maker staat er gewoon nog bij).
Superbedankt voor de hulp!
ps. Ik was en ben niet op zoek naar iemand die de code kant-en-klaar voor me maakt, maar soms is het moeilijk zoeken naar iets als je niet weet wat het is ;)