Dynamicke generovani formulare
- balicekt
- Člen | 52
Ahoj, řeším problém s dynamickým generováním formuláře. Můj formulář vypadá takto:
//FORMULAR PRO REZERVACI
protected function createComponentReservationForm()
{
$form = new UI\Form;
$form->addText('name', 'Jméno');
$form->addText('surname', 'Příjmení');
$form->addText('street', 'Adresa');
$form->addText('city', 'Město');
$form->addText('zip', 'PSČ');
$form->addText('country', 'Země');
$form->addText('phone', 'Telefon');
$form->addText('email', 'Email');
$form->addTextArea('note', 'Poznámka');
$form->addSubmit('save', 'Rezervovat')->setAttribute('class', 'btn btn-success');
$form->onSuccess[] = array($this, 'reservationFormSucceeded');
return $form;
}
A potřeboval bych aby bylo možné přidat více jmen a příjmení to znamená aby u jména a příjmení bylo ajaxové tlačítko +. Na které když zmačknu tak se přidají další dva inputy pro zadání dalšího jména a příjmení. Googlil jsem půl dne ale na nic co by aspoň trochu fungovalo jsem nepřišel. Budu opravdu vděčný za každou radu. Díky moc.
- balicekt
- Člen | 52
Super díky moc za pomoc. Povedlo se mi to po delší době rozběhat ale stále narážim na problém s přidáváním a odebíráním nových inputů. Můj formulář vypadá nyní takto:
protected function createComponentReservationForm()
{
$form = new UI\Form;
$users = $form->addDynamic('users', function (Container $user) {
$user->addText('name', 'Jméno');
$user->addText('surname', 'Příjmení');
$user->addSubmit('remove', 'Odebrat')
->addRemoveOnClick();
}, 1);
$users->addSubmit('add', 'Přidat')
->addCreateOnClick();
$form->addText('street', 'Adresa');
$form->addText('city', 'Město');
$form->addText('zip', 'PSČ');
$form->addText('country', 'Země');
$form->addText('phone', 'Telefon');
$form->addText('email', 'Email');
$form->addTextArea('note', 'Poznámka');
$form->addSubmit('save', 'Rezervovat')->setAttribute('class', 'btn btn-success');
$form->onSuccess[] = array($this, 'reservationFormSucceeded');
return $form;
}
Narážím ale na 2 zásadní problémy a to, že uživatel může odebrat i ten první formulář, který tam je defaultně a to je špatně protože, alespoň jednou být vyplněn musí a druhý vetší problém je, že když dám přidat další formulář, tak se nějak zásadně odesílá a jde přidat až když je první formulář vyplněn. Našel jsem na fórech, že už to někdo řešil, ale rozchodit to tak aby to fungovalo se mi zatím nepodařilo. Díky moc za každou radu. TB
- Grez
- Člen | 7
Parametr $forceDefault nastav na true:
$users = $form->addDynamic('users', function (Container $user) {
//dynamic form
}, 1, true);