Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Przekazanie zmiennej $_GET w przycisku submit
PROGer
post 29.09.2015, 12:29:22
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 30.04.2015

Ostrzeżenie: (0%)
-----


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>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
Pyton_000
post 29.09.2015, 12:31:40
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


do action dopisz
Go to the top of the page
+Quote Post
Rysh
post 29.09.2015, 12:38:56
Post #3





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

Ostrzeżenie: (0%)
-----


Cytat(Pyton_000 @ 29.09.2015, 13:31:40 ) *
do action dopisz

albo do input hidden


--------------------
Go to the top of the page
+Quote Post
PROGer
post 29.09.2015, 12:44:26
Post #4





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 30.04.2015

Ostrzeżenie: (0%)
-----


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>
Go to the top of the page
+Quote Post
Comandeer
post 29.09.2015, 12:47:04
Post #5





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


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]


--------------------
Go to the top of the page
+Quote Post
Rysh
post 29.09.2015, 12:51:52
Post #6





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
PROGer
post 29.09.2015, 13:01:10
Post #7





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 30.04.2015

Ostrzeżenie: (0%)
-----


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:



Ten post edytował PROGer 29.09.2015, 13:03:29
Go to the top of the page
+Quote Post
Pyton_000
post 29.09.2015, 13:03:13
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


zmienna get jest pusta
Go to the top of the page
+Quote Post
PROGer
post 29.09.2015, 13:09:07
Post #9





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 30.04.2015

Ostrzeżenie: (0%)
-----


Nie nie jest pusta ... zrobiłem

  1. print $_GET['impersonate'];


i widzę jej zawartość...
Go to the top of the page
+Quote Post
mar1aczi
post 29.09.2015, 13:19:37
Post #10





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

Ostrzeżenie: (0%)
-----


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">




--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
PROGer
post 29.09.2015, 13:31:58
Post #11





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 30.04.2015

Ostrzeżenie: (0%)
-----


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");


?

Ten post edytował PROGer 29.09.2015, 13:32:51
Go to the top of the page
+Quote Post
Star
post 29.09.2015, 13:42:00
Post #12





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

Ostrzeżenie: (0%)
-----


header("Location:test.php?costam={$_GET['costam']}");
Go to the top of the page
+Quote Post
mar1aczi
post 29.09.2015, 13:42:05
Post #13





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

Ostrzeżenie: (0%)
-----


Podobnie jak w action? Próbowałeś?


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
viking
post 29.09.2015, 13:43:59
Post #14





Grupa: Zarejestrowani
Postów: 6 377
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Możesz użyć funkcji http://php.net/manual/en/function.http-build-query.php


--------------------
Go to the top of the page
+Quote Post
PROGer
post 29.09.2015, 13:52:35
Post #15





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 30.04.2015

Ostrzeżenie: (0%)
-----


Poradziłem sobie tak:

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


Dzięki wielkie za pomoc! smile.gif
Go to the top of the page
+Quote Post
Rysh
post 29.09.2015, 14:13:45
Post #16





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 14:09