Dynamické přidávání skupiny formulářových polí
- Kajry
- Člen | 5
Přeji hezký den.
Mám takový problém s formulářem, který bych potřeboval nutně vyřešit
a to co nejdříve.
Mám formulář, který slouží pro přihlášení organizace na seminář. Problém je v tom, že káždá organizace má jiný počet účastníků, které chtěji přihlásit.
Nyní je formulář řešen takto:
$form = new AppForm($this, $name);
$form->setMethod('post');
$form->addText('organizace', 'Název organizace:')->addRule(Form::FILLED, 'Zadejte, prosím, název Vaší organizace');
$form->addText('adresa', 'Adresa organizace:')->addRule(Form::FILLED, 'Zadejte, prosím, adresu Vaší organizace');
$form->addText('ico', 'IČO organizace:')->addRule(Form::FILLED, 'Zadejte, prosím, IČO Vaší organizace');
$form->addText('email', 'Váš e-mail:')->addRule(Form::EMAIL, 'Zadejte, prosím, Váš e-mail');
//$form->addText('pocet', 'Kolik lidí přihlásit?:')->addRule(Form::NUMERIC, 'Počet přihlášených musí být číslo')->addRule(Form::RANGE, 'Počet přihlášených musí být číslo od %d do %d', array(1, 10));
$form->addTextArea('jmena', 'Napište jména přihlašovaných !KAŽDÉHO UŽIVATELE MUSÍTE NA KONCI ZADANÝCH ÚDAJŮ ODDĚLIT ENTEREM!(ve tvaru: Titul.Jméno Příjmení(titul), Datum narození a místo)(např: Ing.Josef Fiktivní, 28.10.2010 v Táboře):')->addRule(Form::FILLED, 'Zadejte, prosím, nějaká jména');
//$form->addCheckbox('jeclen', 'Jsme členy asociace');
$clenstvi=Array (0=>'Nejsme členy asociace', 1=>'Jsme členy asociace');
$form->addSelect ('jeclen', 'Členství v asociaci', $clenstvi);
$form->addHidden('vzd_seminar')->setValue($this->template->seminar['id']);
$form->addHidden('pocet');
$form->addSubmit('prihlasit', 'Vypočítat cenu >>');
$form->onSubmit[] = array($this, 'prihlasitFormSubmitted');
$form->addProtection('Please submit this form again (security token has expired).');
A počet přihlášených získávám takto:
$hodnoty=$form->getValues();
$hodnoty['jmena']=trim($hodnoty['jmena']);
$pocetlidi=explode("\n", $hodnoty['jmena']);
$form['pocet']->setValue(count($pocetlidi));
Takže záznam v DB vypadá takto:
Titul1.Jméno1 Příjmení1(titul1), Datum narození a místo1
Titul2.Jméno2 Příjmení2(titul2), Datum narození a místo2
atd.
Já bych potřeboval, aby zápis do DB zůstal ve stejném tvaru, ale potřebuji změnit strukturu formuláře a to takto:
Nezměněné základní info.
Informace o organizaci:
- Název organizace
- Adresa organizace
- IČ organizace
Nyní přijde to co potřebuji. Část formuláře s informacemi o účastníkovi.
Informace o účastníkovi:
- Titul před jménem
- Jméno
- Příjmení
- Titul za jménem
- Datum a místo narození
Za tímto by bylo tlačítko Přidat dalšího účastníka, které by vykreslilo novou část formuláře se stejnými poli.
Teď by to muselo podle toho kolik tam těch části Informace o účastníkovi bude vyvodit počet přihlášených účastníku.
Pokud by někdo věděl jak na to nebo měl nějaký nápad tak ho uvítám.
- Mikulas Dite
- Člen | 756
Každou opakovanou část můžeš hodit do containeru, tím se vyhneš stejným názvům a do db zapíšeš podle toho. Teoreticky něco jako tohle: https://forum.nette.org/…idani-vypisu?….