Změna pořadí prvků mezi více containery

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

Ahoj, je možné poskládat pořadí input prvků mezi více kontejnery ve formuláři?

Mám např.:

<?php
$A = $form->addContainer('A');
$B = $form->addContainer('B');

$A->addText('a1', 'a1', NULL, 100);
$B->addText('b1', 'b1', NULL, 100);
$A->addText('a2', 'a2', NULL, 100);
$B->addText('b2', 'b2', NULL, 100);
?>

Já bych rád, abych si po odeslání formuláže mohl z getValues() vyzobnout čiště jen ty dvě pole a1[] a a2[].

Kontejnery mi ty prvky ale sloučí k sobě v rámci konkrétního kontejneru. Jde to prosím nějak nastavit?
Používám pro vykreslení formuláře standard nette ve výchozím režimu. Při manuálním renderování formuláře by to asi problém nebylo nastavit, ale jde to i bez manuálního sestavení formuláře?

Pokud to nelze, napadá mě, že si těch konktejnerů udělám víc a po odeslání si různé pole kontejnerů sloučím do těch dvou co potřebuji, a které pošlu dál apod. Ale to se mi moc nelíbí, nejraději bych chtěl hned po odeslání obdržet z getValues() dvě pole a1[] a a2[].

Děkuji za rady.

greeny
Člen | 405
+
0
-

Pokud chceš pole a1, a2, není nic snažšího než zavolat $form["A"]->getValues();, kde budou hodnoty jen z prvků a1 a a2.

Pokud mluvíš o renderování, tak pořadí prvků musíš vyřešit přes custom renderer.

freely111
Člen | 41
+
0
-

greeny napsal(a):

Pokud chceš pole a1, a2, není nic snažšího než zavolat $form["A"]->getValues();, kde budou hodnoty jen z prvků a1 a a2.

Pokud mluvíš o renderování, tak pořadí prvků musíš vyřešit přes custom renderer.

Díky za reakci, mluvím o renderování, tak aby se input prvky vykreslily přeházeně napříč těmi kontejnery. Pochopil jsem tedy, že bez nastavení custom renderer to nepůjde, tak asi OK, jestli jiná možnost není. Díky.