Formulář A → Formulář B, data mimo URL
- Bohosu
- Člen | 24
Dobrý večer všem. :-)
Předem se omlouvám jestli neumím hledat, ale mám následující situaci a
prosím vás o radu jak nejlépe postupovat a využít Nette.
Cílem je část aplikace pro přidávání inzerátů do databáze. Dejme tomu, že je možné vložit např. 3 druhy inzerátů ( Byt, Auto, Zvíře ). Několik atributů u všech tří typů je společných, např. název,cena apod. Potřebuji, aby se na začátku zobrazil první formulář, ve kterém bude radio button s výběrem typu inzerátu a textboxy se společnými atributy (název, cena). Po odeslání tohoto formuláře potřebuji redirect na jiný View, ve kterém se zobrazí formulář s prvky už pro konkrétní typ inzerátu (u auta např. objem motoru, rychlost,…)
Moje otázka a prosba zní:
Jak provést redirect na jinou Template a přenést hodnoty, které uživatel
vyplnil v prvním (hlavním) formuláři? Potřeboval bych jinou metodu než
Persistentní parametry, protože ty se předávají v URL (což by zde
nebylo pěkné)
Asi někteří z vás navrhnou nějakou JavaScriptovou vychytávku, která by automaticky zobrazovala/skrývala formulářová pole podle výběru typu inzerátu z radio buttonu. Rád bych se javascriptu vyhnul, potřeboval bych řešení které by spolehlivě fungovalo s vypnutým JavaScriptem, takže nejlépe asi logikou v presenteru.
Zkoušel jsem
$this->redirect("NovyInzerat:auto", $pole_dat);
Ale pole_dat se mi nepodařilo přenést :-(
Díky moc za všechny rady. :-)
Editoval Bohosu (15. 11. 2010 23:43)
- Bernard Williams
- Člen | 207
To si nejsem jistý – ještě jsem forward
nikdy nepoužil
:-) Zkus použít:
$this->forward("NovyInzerat:auto", 'data' => $pole_dat);
a pak snad budou v:
public function actionByt() {
$data = $this->getParam("data");
}
Popř. je zkusit najít přes:
debug::dump($this->getParam());
Editoval Bernard Williams (16. 11. 2010 20:47)