Postupné načítání formuláře

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
ch4rli3
Člen | 6
+
0
-

PHP 5
Nette: 2.0.10

Zdravím ve spolek.
Pomalu ale jistě se seznamuju s NETTE a jak jinak to udělat než si vymyslet a napsat nějakou jednodušši aplikaci. Nyní řeším jeden problém, nevím ani jestli je to vůbec sémanticky správně. Jde o následující:
V databázi mám tabulku lokalit se strukturou id, mesto, ulice, cp
Když chci přidat klienta do databáze tak mu chci vybrat lokalitu, ale ay to bylo přehledné tak nejdříve vyplním údaje o klientovi a mám tam pouze select ve kterém mám možnost vybrat město. Po vybrání města, potřebuju aby se zobrazil další select pouze s ulicemi daného města a po vybrání ulice by se měl zobrazit 3. select s čisly popisnými a po řádném vyplnění by se to mělo uložit do databáze.

Aktuálně se to snažím řešit tak že mám 3 formuláře:
createComponentClientForm, createComponentClientFormStreet a createComponentClientFormCp

každý formulář má své view

createComponentClientForm je na $form->onSuccess[] zpracováván funkcí clientFormAccepted(Form $form) – v této funkcni se naplní globální proměnná $this->clientInfo hodnotami z formuláře a ověří se jestli kleint není už zavedený – pokud je zavedený, tak se vyhodí hlášení a pokud není zavedený tak se nastaví view na ulice kde se vykresluje formulář createComponentClientFormStreet a z proměnné $this->clientInfo se předvyplní již vyplněná pole, přidá se select pouze s ulicemi z daného města.

Tohle vše funguje tak jak si představuju. Problém ovšem nastává v okamžiku, kdy vyberu ulici a chci pokračovat k číslu popisnému. V ten okamžik se to má zpracovávat funkcí clientFormStreetAccepted(Form $form) ale místo toho dostanu chybu z createComponentClientFormStreet() – tudíž se to nezpracovává správně.

V první řadě se chci zeptat zda má myšlenka je vůbec správná jestli to tak může fungovat. Pokud ano tak co může způsobit že z prvního kroku na druhý to projde bez problémů a a z druhého na třetí se to sekne. Přitom je to napsané úplně stejně a mají se provést stejné operace.

Předem díky za odpověď

Editoval ch4rli3 (14. 6. 2013 14:52)

Tabetha
Člen | 140
+
0
-

Dependant select box by ti mohol pomôcť

ch4rli3
Člen | 6
+
0
-

Díky to bude přesně to co potřebuju :-)