addDynamic spravne pouziti

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

Ahoj, mam problem s dynamicky pridavanymi prvky formulare s timto addonem https://componette.org/search/?…:

nette 2.0.12.

mam kod na pridavani polozek ve formu takto:

<?php
            $products = $form->addDynamic('products', function (Container $product) {
				$product->addText('produkt', 'Katalogové číslo');
				$product->addText('produktks', 'Počet kusů');
                $product->addSubmit('remove', 'Smazat')
                    ->addRemoveOnClick();
            }, 2);
            $products->addSubmit('add', 'Přidat další produkt')
                    ->addCreateOnClick(true);
?>

Ale vzdy pri pridani dalsiho produktu se provadi validace, takze kdyz nejsou vyplneny vsechny povinne polozky dalsi prvky se nepridaji. U mazani jsem tento problem nezaznamenal. Taky je mi divne, ze se pri odebirani polozky nacte cela stranka s formularem znovu. Netusite kde by mohl byt problem?

Editoval ZbysekLipka (10. 2. 2014 17:17)

David Matějka
Moderator | 6445
+
0
-

viz https://componette.org/search/?…

Pokud chcete, aby šly Containery „naklikat“ dopředu, bez nutnosti všechny vyplňovat, stačí přidat jako první argument TRUE. Tento příklad se hodí, pokud je uživatel zvyklý si políčka „naklikat“ a pak je vyplnit najednou a odeslat.

a ano, pri odebirani se nacte cela stranka znovu, ten extension je ciste na strane serveru, pokud k tomu chces nejakou klientskou cast, musis si to napsat

btw, formatuj spravne kod ;)

castamir
Člen | 629
+
0
-

Doporučuju načítat třeba ajaxem, jinak se totiž nahrazování indexů v atributech id a name asi nevyhneš…

sitnarf
Člen | 27
+
0
-

Musíš na tlačítko přidat ještě setValidationScope(false):

<?php
	$products->addSubmit('add', 'Přidat další produkt')
		->setValidationScope(false)
		->addCreateOnClick(true);

?>
ZbysekLipka
Člen | 19
+
0
-

sitnarf napsal(a):

Musíš na tlačítko přidat ještě setValidationScope(false):

<?php
	$products->addSubmit('add', 'Přidat další produkt')
		->setValidationScope(false)
		->addCreateOnClick(true);

?>

diky, tohle je ta metoda, ktera me tam chybela! ;)