Proměnlivé formuláře (přidávání nových prvků na základě již vyplněných)

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

Ahoj,
jsem nový tady i mezi Nette. Píši svou první aplikaci a narazil jsem na problém, který nevím jak řešit. Potřebuji formulář, ve kterém by se proměnlivě měnily prvky na základě již vyplněných prvků. (Po vyplnění jednoho textového pole přibude další apod.)
Je možné, že už je to tu někde řešené a jen jsem to někde minul, potom bych byl vděčný za nasměrování.

blonboll
Člen | 2
+
0
-

mm-marek napsal(a):

https://github.com/…e-addDynamic

Velice šikovný addon. Ale nevím jak mám v šabloně nastylovat vytvořený formulář. Níže uvedená šablona nefunguje. Prosím o radu a nebo jakékoliv nasměrování. Předem díky

{form myForm}
	{input name}
	{input vek}
{/form myForm}
tomasnikl
Člen | 137
+
0
-

ja bych mel podobny dotaz,

v presenteru jsem pouzit addDynamic:

$form->addDynamic('users', function (Container $user) {
	$user->addText('name', 'Jméno');
	$user->addText('surname', 'Příjmení');
}, 2);

a kdyz chci formular vypsat rucne:

{form mujFormular}
	{input users}
{/form}

tak mi to vyhodi chybu:
Call to undefined method Kdyby\Forms\Containers\Replicator::getControl().
kdyz ovsem vypisi formular {control mujFormular}, tak jde vse v poradku…

jak tedy vypisovat rucne i prvky pridane pres addDynamic?

Ot@s
Backer | 476
+
0
-

tomasnikl napsal(a):
jak tedy vypisovat rucne i prvky pridane pres addDynamic?

Šablona (psáno z hlavy, netestováno)

{$myform->render('begin')}
<!-- ... -->
<ul n:foreach="$myForm['users']->getComponents() as $f">
    <li>{$f['name']->control} {$f['name']->label} {$f['surname']->control} {$f['surname']->label}</li>
</ul>
<!-- ... -->
{$myform->render('end')}

Presenter

$this->template->myform = $this['myForm']; // predpoklada existenci createComponentMyForm s def. formulare

Editoval Ot@s (21. 11. 2011 7:21)

tomasnikl
Člen | 137
+
0
-

aha, takhle :)

Dekuju, az budu doma zkusim ;)

mistm
Člen | 25
+
0
-

Je mozne tento addon nejak zajaxovatet? Dekuji za odpoved.