Autor | Zpráva | ||
---|---|---|---|
Mufna Profil |
#1 · Zasláno: 28. 5. 2010, 23:10:37 · Upravil/a: Mufna
Zdravím Vás. Mám trochu problém s předáním parametru v URL (odkazu) do jiné stránky (s formulářem). Jedná se mi o předání řetězce s názvem produktu - může být složený z písmen a čísel, včetně mezer - takže např. "produkt 0123". Chtěl bych to vyřešit nějak elegantně, zároveň potřebuji ponechat ve formuláři pouze <form action="/poptavkovy-formular/"> .
Kód odkazu, ve kterém bych potřeboval předávat ten parametr, mám zatím takto: <?php echo '<li><a href="/poptavkovy-formular/?'.$nazev[$i].'">poptat</a></li>'; ?> Nevím, jestli tenhle kód je v pořádku, a kromě toho některé prohlížeče mi pak vypíší URL: /poptavkovy-formular/?produkt%200123 Potřebuju pak udělat to, že ten parametr na následující stránce (s formulářem) nejprve "vytáhnu" z URL, následně ho uložím do proměnné $nazev a její hodnotu pak vypíšu jako value="$nazev" v inputu typu "hidden". Jak mám to předávání parametru v mém konkrétním případě vyřešit ? |
||
Alphard Profil |
#2 · Zasláno: 28. 5. 2010, 23:14:41
urlencode(); |
||
Mufna Profil |
#3 · Zasláno: 28. 5. 2010, 23:30:02
Alphard
Díky. Koukám, ta funkce z mezery udělá znak "+" |
||
Alphard Profil |
#4 · Zasláno: 28. 5. 2010, 23:37:45
Teď jsem si vzpomněl, že vhodnější funkce by asi byla rawurlencode(), ta, pokud si vzpomínám, udělá z mezery %20.
|
||
Mufna Profil |
#5 · Zasláno: 28. 5. 2010, 23:50:23 · Upravil/a: Mufna
Ok, díky. Prosím ještě, zda bych mohl dostat radu ohledně toho, jak z URL nejprve vytáhnout ten parametr a následně ho hned zase "odmazat". Zatím jsem si sestavil tohle (jen logicky), z programátorského hlediska to takhle nejde, tak se omlouvám.
$url = $_SERVER['REQUEST_URI']; if ($url == "/poptavkovy-formular/?$str") { $product_name = $str; $url = "/poptavkovy-formular/"; } |
||
Alphard Profil |
#6 · Zasláno: 29. 5. 2010, 00:07:26
Hmm, teď mě nenapadá žádné pěkné řešení. Asi bych zkusil smazat nechtěný prvek z GET pole (unset) a pak znovu sestavit adresu. Ale třeba někdo poradí lépe.
Obvykle tohle není potřeba, aplikace na začátku zpracuje požadavek (tj. validuje data), provede nějakou akci (něco využije a zapomene, něco vytáhne z db apod.) a na závěr přesměruje, nebo vygeneruje html stránku z odkazy (přesně ví, co potřebuje a kde to vzít). Takže je to opačný postup, nemaže se určitý prvek, ale určité prvky se generují, aspoň u mě. |
||
Majkl578 Profil |
#7 · Zasláno: 29. 5. 2010, 00:58:13
Ono se s tím polem (
$_GET ) špatně pracuje, když jde o klíč a ne o hodnotu s klíčem.
Pokud lze zaručeně říct, že je tam jedna hodnota, pak lze použít current(array_keys($_GET)) , ale řešení je to opravdu nepěkné. Dále by možná šla použít funkce parse_str().
|
||
Časová prodleva: 14 let
|
0