odstranění persistentních parametrů z URL

- pekinen
- Člen | 29
Zdravím, chci se zeptat, zda lze nějak pomocí definice Route odstranit
z URL persistentní parametry.
Vytváří se mi URL ve tvaru
http://example.com/?param1=1¶m2=2¶m3=1¶m4=2&action=default.
Pomocí Routy:
$router[] = new Route('<param1>-<param2>/', array(
'presenter' => 'Page',
'param1' => NULL,
'param2' => NULL,
));
dostávám tvar URL
http://example.com/1-2/?param3=1¶m4=2&action=default.
Chci se zbavit těch ostatních parametrů, které (zatím) nemám v Routě definované.
Děkuji za pomoc.

- Panda
- Člen | 569
Mělo by pomoci jim při vytváření odkazu nastavit výchozí hodnotu,
popř. NULL:
$presenter->link('default', array('param1' => 1, 'param2' => 2, 'param3' => NULL, 'param4' => NULL));
Vzhledem k tomu, že jsem zatím vždycky měl výchozí hodnotu
persistentního parametru nedefinovanou (tedy NULL), tak nemohu říct, zda je
správně jim nastavit výchozí hodnotu nebo NULL.

- pekinen
- Člen | 29
Panda napsal(a):
Mělo by pomoci jim při vytváření odkazu nastavit výchozí hodnotu, popř.
NULL:$presenter->link('default', array('param1' => 1, 'param2' => 2, 'param3' => NULL, 'param4' => NULL));Vzhledem k tomu, že jsem zatím vždycky měl výchozí hodnotu persistentního parametru nedefinovanou (tedy NULL), tak nemohu říct, zda je správně jim nastavit výchozí hodnotu nebo
NULL.
Jenže já jim nechci měnit hodnotu. Tu stále potřebuju. ;)

- pekinen
- Člen | 29
Blizzy napsal(a):
Co tohle?
$router[] = new Route('<param1>-<param2>/', array( 'presenter' => 'Page', 'param1' => NULL, 'param2' => NULL, 'param3' => 1, 'param4' => 2, 'action' => 'default', ));
Tím se jich sice zbavím, ale pak budou jejich hodnoty konstantní a já je
potřebuju taky měnit…
Nebo se pletu?
Editoval pekinen (21. 8. 2009 12:42)

- Foowie
- Člen | 269
No, nějak se ty parametry k serveru dostat musí :)
Takže buď použij ajax (takže v řádku adresy ty proměnné nebudou
vidět), nebo si ty parametry ukládej do sessions (má to ale hodně nevýhod a
popravdě ani nevím jestli to někdo používá :)).
Možná ještě by to šlo posílat post metodou … nějaký hidden input,
místo poslání požadavku vložíš ten požadavek do inputu a pošleš
serveru ať si to pořeší)… ale osobně bych použil tak maximálně tu
první metodu…

- Panda
- Člen | 569
pekinen napsal(a):
Blizzy napsal(a):
Co tohle?
> $router[] = new Route('<param1>-<param2>/', array( > 'presenter' => 'Page', > 'param1' => NULL, > 'param2' => NULL, > 'param3' => 1, > 'param4' => 2, > 'action' => 'default', > ));Tím se jich sice zbavím, ale pak budou jejich hodnoty konstantní a já je potřebuju taky měnit…
Nebo se pletu?
Mno nebudou konstantní, druhý parametr konstruktoru třídy
Route je na výchozí hodnoty. presenter je tam také
uveden a konstantní není…
A původně jsem dotaz špatně pochopil, takže se omlouvám.