Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Przekazanie zmiennej $_GET w przycisku submit
Forum PHP.pl > Forum > Przedszkole
PROGer
Witam,

Jak przekazać wartość zmiennej $_GET["impersonate"] w przycisku submit? Jeśli chodzi o linki pomiędzy stronami robie to tak:

  1. print "<a href=\"test.php?lang=".$_GET["lang"]."&impersonate=".$_GET["impersonate"]."\"><div class=\"changepass\">LINK</div></a>";


a w formularzu?

  1. <form action="test.php" method="post" name="go">
  2. <input name=function value="pass" type=hidden>
  3.  
  4. <label for="name">nazwa:</label>
  5. <input type="text" id="s_text" name="name" maxLength="16" required/>
  6.  
  7. <div id="lower">
  8. <input type="submit" value="OK">
  9. </div>
  10. </form>
Pyton_000
do action dopisz
Rysh
Cytat(Pyton_000 @ 29.09.2015, 13:31:40 ) *
do action dopisz

albo do input hidden
PROGer
Do action nie wiem jak ....

A co do hidden zrobiłem tak: ale pewnie źle bo nie działa ..

  1. <input name=impersonate value=".$_GET['impersonate']." type=hidden>
Comandeer
Atrybut [action] zachowuje się dokładnie tak samo jak atrybut [href] linku - to chyba wystarczająca podpowiedź wink.gif

@Rysh nie da rady, bo jeśli tak zrobi, to to pole zostanie wysłane i tak przez POST (no bo jest częścią formularza tak wysyłanego); jedyna (sensowna) możliwość to dopisanie tego do [action]
Rysh
Cytat(PROGer @ 29.09.2015, 13:44:26 ) *
Do action nie wiem jak ....

A co do hidden zrobiłem tak: ale pewnie źle bo nie działa ..

  1. <input name=impersonate value=".$_GET['impersonate']." type=hidden>

v
  1. <form action="test.php?impersonate='. $_GET['impersonate'] .'" method="post" name="go">


Ale proponowałbym raczej w POST, skoro już i tak przesyłam nim dane:
  1. <input name="impersonate" value="'. $_GET['impersonate']. '" type="hidden">


Jeśli coś nie działa, sprawdź na stronie do której przesyłasz co otrzymujesz:
  1. print_r($_POST);


Cytat(Comandeer @ 29.09.2015, 13:47:04 ) *
@Rysh nie da rady, bo jeśli tak zrobi, to to pole zostanie wysłane i tak przez POST (no bo jest częścią formularza tak wysyłanego); jedyna (sensowna) możliwość to dopisanie tego do [action]

Chyba dopiero zrozumiałem co on chce osiągnąć wink.gif
PROGer
Co do action:

Taki zapis:

  1. <form action="test.php?impersonate='. $_GET['impersonate'] .'" method="post" name="go">


powoduje otwarcie pliku test.php z tym że otrzymuje białą stronę a w adresie URL mam:

Pyton_000
zmienna get jest pusta
PROGer
Nie nie jest pusta ... zrobiłem

  1. print $_GET['impersonate'];


i widzę jej zawartość...
mar1aczi
Prawdopodobnie wypisujesz to u siebie w kodzie jako zwykły html.
Cytat(PROGer @ 29.09.2015, 14:01:10 ) *
zapis:
  1. <form action="test.php?impersonate='. $_GET['impersonate'] .'" method="post" name="go">

zamień na
  1. <form action="test.php?impersonate=<?php echo $_GET['impersonate']; ?>" method="post" name="go">


PROGer
mar1aczi zgadza się smile.gif W trakcie Twojego pisania zacząłem zmieniać kod identycznie jak mi pokazałeś smile.gif

Jak natomiat przekazać taką zmienną w header?
Czyli:

  1. header("Location:test.php");


?
Star
header("Location:test.php?costam={$_GET['costam']}");
mar1aczi
Podobnie jak w action? Próbowałeś?
viking
Możesz użyć funkcji http://php.net/manual/en/function.http-build-query.php
PROGer
Poradziłem sobie tak:

  1. header("Location:test.php?impersonate=".$_GET["impersonate"]."");


Dzięki wielkie za pomoc! smile.gif
Rysh
Cytat(PROGer @ 29.09.2015, 14:52:35 ) *
Poradziłem sobie tak:

  1. header("Location:test.php?impersonate=".$_GET["impersonate"]."");


Dzięki wielkie za pomoc! smile.gif

Wystarczyło dokleić zmienną, niepotrzebnie na końcu dodajesz pusty ciąg znaków ."");
  1. header('Location:test.php?impersonate='.$_GET["impersonate"]);


Cytat(Star)
  1. eader("Location:test.php?costam={$_GET['costam']}");

Lepiej używać ' i nie używać zmiennych w { } mniejsze obciążenie dla kompilatora smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.