PHP expert |
|
Je gebruikt $_REQUEST['id'], dus gaat PHP kijken naar de waarde "id" in de $_GET en $_POST arrays.
Je stuurt immers de "id" variabele via POST naar de pagina (de waarde van je selectbox), en die pagina geef je de querystring "&id=$_REQUEST['id']" mee (in je form action). Met andere woorden: $_REQUEST neemt de waarden van de global arrays COOKIE, POST en GET over. POST heeft voorrang op GET, dus als je twee keer "id" meestuurt, zal hij de POST waarde gebruiken, die je dan meestuurt via $_GET bij de volgende request. Zo wordt het natuurlijk behoorlijk ingewikkeld
Hopelijk wordt het zo duidelijker:
Citaat: Als ik keuze 105 maak gebeurt er niks.
Eerst is er nog geen waarde voor zowel GET als POST. Je stuurt bij de volgende request 105 door via post.
Citaat: Als ik daarna een andere optie kies, stel 90, dan krijg ik de ?id=105
Je hebt 105 via post gestuurd, dus bij deze pagina weergave staat in je form action &id=105. Je stuurt nu 90 door via POST en 105 via GET.
Citaat: Als ik daarna opnieuw een andere optie kies, stel 100, krijg ik de waarde ?id=90.
90 doorgestuurd via POST, dus wordt de volgende request gestuurd naar &id=90.
Ga zo maar door.
Los het zo op:
echo '<form action="index.php?page=inc_af_newsitem_list" method="get" name="myform" >Kies seizoen <select name="id" onchange="myform.submit();">';
echo '<form action="index.php?page=inc_af_newsitem_list" method="get" name="myform" >Kies seizoen <select name="id" onchange="myform.submit();">';
Nu verstuur je het formulier enkel via GET, met de variabele ID.
Succes!
|