Jak vyřešit zbytečné GET parametry projevené v URL?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Kevlud
- Člen | 3
Ahoj, řeším jednu spíše kosmetickou věc. V presenteru mám továrničku na formulář :
protected function createComponentFiltrFormular()
{
.
.
$form = new UI\Form;
$form->setMethod('GET');
$form->addSelect('vyrobce','Výrobci')->setItems($vyrobci, FALSE)->setPrompt('Výrobci');
$form->addSelect('obchod','Obchody')->setItems($obchody, FALSE)->setPrompt('Obchody');
$form->addSubmit('filtr_btn', 'Filtrovat');
return $form;
}
Po odeslání formuláře se mi stránka obnoví a projeví se GET v URL asi nějak takto :
trendi/katalog/67-boty?vyrobce=Nike&obchod=Baťa&filtr_btn=Filtrovat&do=filtrFormular-submit
Jak docílím toho, aby se mi zbytečně do url neprojevovaly buttony a další zbytečné věci ? Chtěl bych aby výsledná url s použitým filtrem formulářem vypadala nějak takto :
trendi/katalog/67-boty?vyrobce=Nike&obchod=Baťa
- Kevlud
- Člen | 3
Díky moc za radu. :) Vyřešil jsem to nějak takhle, pro ty co by to náhodou mohlo taky někdy zajímat :
protected function createComponentFiltrFormular()
{
$form = new UI\Form;
$form->addSelect('vyrobce','Výrobci')->setItems($vyrobci, FALSE)->setPrompt('Výrobci');
$form->addSelect('obchod','Obchody')->setItems($obchody, FALSE)->setPrompt('Obchody');
$form->addSubmit('filtr_btn', 'Filtrovat');
$form->onSuccess[] = array($this, 'filtrFormularSucceeded');
return $form;
}
public function filtrFormularSucceeded(UI\Form $form, $values)
{
$this->redirect('this', array_merge($_GET,array(
'vyrobce' => $values->vyrobce,
'obchod' => $values->obchod)
));
}
- David Matějka
- Moderator | 6445
@Kevlud proc tam pouzivas $_GET? na superglobalni promenne v nette (skoro) nikdy nesahej primo