login  Naam:   Wachtwoord: 
Registreer je!
 Forum

option list vullen met mysql result (Opgelost)

Offline markla - 02/07/2013 14:06
Avatar van marklaPHP interesse over dit script heb ik al eens eerder vragen gesteld, maar momenteel ben ik de website aan het aanpassen een ik kom er (wederom) helaas niet uit

Het doel is om via een Option list, die gevuld wordt uit een mysql table, en pagina op te roepen en daarbij het value="105" van de option list als ?id=105 mee te geven.

Het script dat ik heb doen het niet helemaal goed.
Nu lijkt het er op dat er een soort vertraging in zit.

wat bedoel ik daarmee; Als ik keuze 105 maak gebeurt er niks.
Als ik daarna een andere optie kies, stel 90, dan krijg ik de ?id=105
Als ik daarna opnieuw een andere optie kies, stel 100, krijg ik de waarde ?id=90.

etc etc

Wat gaat er mis?

Dit is het script :

  1. $id = $_REQUEST['id'];
  2. echo'<form action="index.php?page=inc_af_newsitem_list&id='.$id.'" method="post" name="myform" >Kies seizoen <select name="id" onchange="myform.submit();">';
  3. echo'<option selected>--selecteer--</option>';
  4.  
  5. // options ophalen
  6. $get_seasons= mysql_query
  7. ("
  8. SELECT
  9. Season_ID as id,
  10. Season_Name as season
  11. FROM
  12. af_seasons
  13. ORDER BY
  14. Season_Name desc") or die (mysql_error ());
  15.  
  16. while($record = mysql_fetch_array($get_seasons))
  17. {
  18. if ($seasonid == $sdata['id'])
  19. {
  20. echo'<option value="'.$record['id'] . '" >'. $record['season'] . '</option>';
  21.  
  22. }
  23. else
  24. {
  25. echo '<option value="'. $record['id']. '">' . $record['season'] . '</option>';
  26.  
  27. }
  28. };
  29. echo'</select></form>';
  30. ?>

2 antwoorden

Gesponsorde links
Offline Koen - 02/07/2013 15:00
Avatar van Koen 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:

  1. 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!
Bedankt door: markla
Offline markla - 02/07/2013 15:28
Avatar van markla PHP interesse Kijk daar hou ik nou van :-)

Mensen die weten hoe het werkt EN het ook nog eens duidelijke uit kunnen leggen  
Thanks!

Is het overigens ook mogelijk om de option list op de gekozen optie te laten "staan"
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.177s