Door
Jac E
op 19-04-2016 23:51
gewijzigd op 19-04-2016 23:54
2.403 views
Wanneer ik iets bij input invoer dan blijft de waarde staan bij een submit. Dat moet ook zodat de waarde blijft staan/bestaan bij een volgende ronde, ook wanneer ik niets invoer. Wanneer ik echter op de link druk verdwijnt deze waarde helemaal en komt niet meer terug. Wie weet waar het mis zou kunnen gaan?
punt 1 is dat er niets mis gaat maar dat het zo hoort te gaan.
punt 2 omdat je de oude zoekwaarde weer invult kun je deze zo weer opnieuw versturen. Al is de zoektekst misschien hetzelfde, het wordt opnieuw aangeleverd in de $_POST en je mag het dus zien als een nieuwe waarde.
Je formulier wordt verstuurd in de POST method. De snelkoppeling is altijd een GET method en dus worden er geen POST variabelen meegestuurd.
Je zult dus een workaround moeten bedenken. Meerdere mogelijkheden zijn mogelijk.
Een van de mogelijkheden is de zoektekst in de sessie op te slaan en als de $_GET['pagina'] bestaat dan is men dus naar de volgende (of vorige) pagina aan het navigeren en dan kun je de zoektekst wederom uit de sessie halen.
Schematisch: overzicht.php (GET): zoektekst uit de sessie verwijderen (reset), de <input> wordt zonder zoektekst weergegeven
overzicht.php (POST): zoektekst is verstuurd en staat in de $_POST array. Deze waarde moet naar de sessie geschreven worden.
overzicht.php?pagina=123 (GET): zoektekst wordt niet meegestuurd dus moet uit de sessie gelezen worden en wederom in de <input> gezet worden.
[size=xsmall]Toevoeging op 20/04/2016 00:33:27:[/size]
Dank je Frank voor je hulp. Het werkt bijna. De zoektekst blijft nu netjes staan bij een submit. En wordt ook gebruikt bij het zoeken. Alleen wanneer ik op die link (o.a. volgende pagina) druk wordt er geen gebruik meer gemaakt van die zoektekst. Hij blijft echter wel staan bij de input en bij een submit gaat het zoeken weer goed. Het lijkt of $zoekterm leeg wordt gemaakt door die link.
Klopt helemaal. Het ging daar inderdaad mis Elmar & Frank.
Frank: had je "hulp" code niet helemaal in het begin van het script en daarom werd $zoekterm toch gevuld met lege informatie na een submit. Weer wat geleerd. Super bedankt!
Waarom (in dit geval) niet altijd werken met GET? Dan heb je geen sessie nodig, alle noodzakelijke informatie wordt doorgegeven via de URL.
In zijn algemeenheid is het volgens mij stukken makkelijker om zoekfunctionaliteit altijd te implementeren via GET, je kunt dan ook zoekresultaten bookmarken, vooruit en achteruit navigeren zonder irritante meldingen over het her-verzenden van een formulier et cetera.