login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Submit met behoud van bestaande $_GET variabelen (Opgelost)

Offline waltervos - 28/12/2007 20:31
Avatar van waltervosNieuw lid Hallo,

Ik ben bezig met een applicatie waarin je als klein bedrijfje de gewerkte uren kan bijhouden en bekijken. Nu ben ik bezig met het gedeelte waar je de uren bekijkt. Daar wil ik dan weer een aantal filter opties geven (laat alleen uren zien die van werknemer X, laat alleen uren zien voor opdrachtgever X, etc).

Op zich heb ik daar alle functionaliteit voor ingebouwd (een select menu dat submit op een onchange JS event), maar bij elke submit worden eerder ingestelde $_GET variabelen niet behouden. De pagina in kwestie bevindt zich op [folder]/?act=show&section=workhours, als ik submit wordt de URL alleen [folder]/?client_id=X.

Ik heb in de form als action al van alles geprobeerd: $_SERVER['request_uri'], $_SERVER['php_self'], en nu gebruik ik daar een variabele waar altijd de volledige huidige URL in staat.

Ik ben helemaal de draad kwijt en heb inmiddels een while loop gemaakt die alle $_GET sleutels waarden in hidden fields plaatst zodat ik ze maar kan behouden. Maar, die oplossing is natuurlijk alles behalve ideaal. Wie heeft er enig idee hoe ik dit oplos? Als jullie code of HTML willen zien, laat maar weten. Ik weet niet zo goed welk gedeelte ik dan zou moeten laten zien namelijk.

Groeten,

Walter

3 antwoorden

Gesponsorde links
Offline DMM - 28/12/2007 20:38 (laatste wijziging 28/12/2007 20:42)
Avatar van DMM PHP beginner Ik meen dat het gaat door zoiets te doen:

  1. <?php
  2. if($_SERVER['REQUEST_METHOD'] == "POST") {
  3. // Verwerking
  4. // hier heb je nog altijd de beschikking over de
  5. // variabelen die meegestuurd werden dmv action
  6. $id = mysql_real_escape_string($_GET['id']);
  7.  
  8. } else {
  9. // variabelen declareren
  10. // dit id wordt uit de url gehaald. Bovenin jouw formulier moet
  11. // er dus een url zijn met het id in
  12. $id = mysql_real_escape_string($_GET['id']);
  13. ?>
  14.  
  15. <form method="post" action="index.php?id=<?php echo $id; ?>">
  16. <!-- De rest van je formulier -->
  17. </form>
  18. <?php
  19. } // einde else
  20. ?>
Offline Abbas - 28/12/2007 20:48
Avatar van Abbas Gouden medaille

Crew .NET
Op die manier heeft die if-else geen zin want je doet exact hetzelfde met die $_GET['id']. Of het nu POST of GET is...
Offline waltervos - 30/01/2008 16:35
Avatar van waltervos Nieuw lid Ik heb 'm als volgt opgelost:

  1. <?php
  2. while(list($key, $val) = each ($_GET)) {
  3. if($key == "notforthiskey") {
  4. continue;
  5. }
  6. echo "<input type=\"hidden\" name=\"$key\" value=\"$val\" />\n\t\t";
  7. }
  8. ?>


bij if($key == "notforthiskey") dien je notforthiskey te vervangen met de name van het veld wat je gaat submitten in de form waar je deze hidden fields in gaat echo'en. Op deze manier worden elke keer dat je het desbetreffende form submit de bestaande $_GET variabelen in hidden fields weer mee gestuurd. Is dat een beetje duidelijk?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.208s