How to: zachovat GET premenne pri odosielani POST formularu – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

How to: zachovat GET premenne pri odosielani POST formularu – PHP – Fórum – Programujte.comHow to: zachovat GET premenne pri odosielani POST formularu – PHP – Fórum – Programujte.com

 

greppi0
Stálý člen
12. 8. 2007   #1
-
0
-

Mam stranku, kde sa niektore premenne predavaju cez URL (cize premenne GET) a ked chcem nejako zmenit strukturu stranky pomocou PHP, musim dosiahnut aby sa klient znova pripojil na server a aby sa mohol odznova cez PHP interpreter spracovat PHP kod aby spravil pozadovanu zmenu.
Jediny sposob ma napadol pomocou formulara, kde ked stlacim tlacitko odosle sa obsah formulara (napr. v input type="hidden") s premennou a ta sa potom dalej vyhodnocuje v PHP kode ...

ale aj ked PHP kod vygeneruje do HTML toto:



<form method="post" action="index.php?prem1=1&prem2=2">
<input type="submit" value="ukaz menu" />
<input type="hidden" name="show_rmenu" value="showed" />
</form>

tak aj tak sa mi premenne prem1 a prem2 stratia a po odoslani formularu sa mi v URL uz nezobrazia ...

neviete ako to fixnut alebo nejaky iny sposob ?
thx ...

Nahlásit jako SPAM
IP: ...–
You can make more friends in two months by becoming interested in other people than you can in two years by trying to get other people interested in you - Dale Carnegie
Mautinek
~ Redaktor
0
Grafoman
12. 8. 2007   #2
-
0
-

zkus tam přidat ještě jeden input s atributem hidden a do něj si ty dvě proměné prem1 a prem2 ulož

Nahlásit jako SPAM
IP: ...–
Programujte.com redaktor
Sleduj mě na @MartinSimko
13. 8. 2007   #3
-
0
-

To skovavas a ukazujes veci pomoci formulare? To se tak vubec nedela...

Udelas to treba takhle:




<a href="stranka.php?menu=<?=$_GET["menu"]=="ukaz"?"skovej":"ukaz" ?>"><?=$_GET["menu"]=="ukaz"?"Skryt menu":"Ukaz menu" ?></a>



Jenom jsem prilis nepochopil, jakym zpusobem tam figuruje ta prem1 a 2

Pokud ti jde jenom o kombinovani POST a GET, tak taky nechapu jaky s tim mas problem, kombinovat jdou uplne v pohode.

Nahlásit jako SPAM
IP: ...–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
greppi0
Stálý člen
13. 8. 2007   #4
-
0
-

Mautinek píše:#
# zkus tam přidat ještě jeden input s atributem hidden a do něj si ty dvě proměné prem1 a prem2 ulož


ale ja tie premenne potrebujem mat v URL a potrebujem aby mi tam ostali ...

To CommanderZ:
ano da sa to robit aj odkazom ale v tvojom pripade by som pri kliknuti na tvoj odkaz <a href="stranka.php?menu=... stratili premenne prem1 a prem2 (tie premenne mozu sluzit napr. na urcenie sekcie a clanku, napr. sekcia=o_mne, clanok=57) preto ich potrebujem zachovat v URL ... a dalo by sa tiez ziskat pomocou :



$get_vars = "?";
foreach ( $_GET as $key => $value ) {
if ($i!=0) $get_vars .= "&";
$get_vars .= $key."=".$value;
$i++;
}

// na konci skriptu bude obsah $get_vars retazec ako napriklad ?prem1=hod_prem1&prem2=hod_prem2


a potom by sa to dalo spravit ako :
<a href="stranka.php<?=$get_vars?>&menu=<?=$_GET["menu"]=="ukaz"?"skovej":"ukaz" ?>"><?=$_GET["menu"]=="ukaz"?"Skryt menu":"Ukaz menu" ?></a>


v tomto pripade by som zachoval premenne prem1 aj prem2 lebo premenna $get_vars by obsahovala vsetky sucasne nazvy premennych aj ich hodnot ktore ziskala z URL ...
ale ja som to skusal spravit takto:
<form method="post" action="index.php<?=$get_vars?>">

<input type="submit" value="ukaz menu" />
<input type="hidden" name="show_rmenu" value="showed" />
</form>

ale ked som stlacil SUBMIT tak ma to nehodilo na stranku index.php?prem1=bla_bla&prem2=bla_bla ale hodilo ma to iba na index.php ... bez mojich get premennych :'(

Nahlásit jako SPAM
IP: ...–
You can make more friends in two months by becoming interested in other people than you can in two years by trying to get other people interested in you - Dale Carnegie
13. 8. 2007   #5
-
0
-

Ten formular je na to fakt zbytecny, to co jsem ti ukazoval a co jsi jeste upravil je funkcni a ciste. Btw, na zakodovani toho pole promennych do tvaru prom1=val1&prom2=val2... muzes pouzit funkci http_build_query. Takze by to potom bylo:

<a href="stranka.php?<?=http_build_query($_GET)?>&menu=<?=$_GET["menu"]=="ukaz"?"skovej":"ukaz" ?>"><?=$_GET["menu"]=="ukaz"?"Skryt menu":"Ukaz menu" ?></a>

Nahlásit jako SPAM
IP: ...–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
greppi0
Stálý člen
13. 8. 2007   #6
-
0
-

ahaaaaa ... super ... thx for all

Nahlásit jako SPAM
IP: ...–
You can make more friends in two months by becoming interested in other people than you can in two years by trying to get other people interested in you - Dale Carnegie
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý