display none formular ->tabulka

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
masterr
Začátečník | 141
+
0
-

Potřebuji ve formuláři nastavit urcitym prvkum tabulky css třídu. Jak na to?pls

22
Člen | 1478
+
0
-

co takhle dokumentace? https://doc.nette.org/cs/forms#…

Editoval 22 (18. 9. 2010 19:57)

westrem
Člen | 398
+
0
-

No 22 nie som si isty ci sa masterr pyta prave na toto ale ked nevie poriadne rozpisat svoj problem tak nech necaka adekvatnu odpoved.

Skus blizsie popisat co mas na mysli (case study) a dostanes aj lepsiu odpoved.

masterr
Začátečník | 141
+
0
-

22 napsal(a):

co takhle dokumentace? https://doc.nette.org/cs/forms#…

To jsem samozřejmě přočetl.

Mám select v něm čísla od 0 do 20, podle toho který vybereš se zobrazí pomocí js input boxů(na upload obrazků). Nejprve je skryju (display:none;) pak odkryju (display:block;). Akorát ta tabulka, kterou vytváří nette tam zůstava, ikdyž je skrytej.

Každý řádek v tý tabulce pak zabírá cca 3px. Toho se chci zbavit tim ze budu skryvat celý <tr> …</tr> v tabulce, ale jen tam kde bude ten input box na upload.

Otázka z ní, jak mám nastavit id prave tem <tr> kde jsou ty input boxy? Popřípadě jestli znáte nějaké lepší řešení, zkuste mi ho navrhnout. (Mě se tohle docela líbí.)

22
Člen | 1478
+
0
-

v tom případě hledej tady na foru „dynamické formuláře“ .-)
jinak si zkus projít příklady formulářů z distribuce, např.: custom-rendering.php

Ale vubec nejlepsi bude poslat kod toho formu…

Editoval 22 (19. 9. 2010 10:34)

masterr
Začátečník | 141
+
0
-

Ok, projdu to, a neexistuje něco na styl:

$aktual_tr->id('mojeid'); ?
$this->tr->id('mojeid');?

Editoval masterr (19. 9. 2010 10:44)

22
Člen | 1478
+
0
-

nevim, co přesně chceš docílit, ale jde to takhle:

$form = new AppForm($name);
...
$renderer = $form->getRenderer();
$renderer->wrappers['pair']['container'] = Html::el('tr')->class('hide');

return $form;
Patrik Votoček
Člen | 2221
+
0
-

tak takhle to určitě nejde… :-)

$form = new AppForm($this, $name);
$form->renderer->wrappers['pair']['container'] = "tr class=hide";
22
Člen | 1478
+
0
-

mi to teda funguje a navíc zůstane zachována class „required“ eventuelně:

$renderer->wrappers['pair']['container'] = Html::el('tr')->class('hide');
arron
Člen | 464
+
0
-

Koukam do impementace ConventionalRenderer a skoro bych rekl, ze pujde oboji :-)

Patrik Votoček
Člen | 2221
+
0
-

22 napsal(a):

mi to teda funguje a navíc zůstane zachována class „required“ eventuelně:

$renderer->wrappers['pair']['container'] = Html::el('tr')->class('hide');

ja ale narážel primárně na $form = new AppForm($name); :-)

arron
Člen | 464
+
0
-

vrtak-cz napsal(a):

ja ale narážel primárně na $form = new AppForm($name); :-)

…coz mi ovsem nedoslo:-)

masterr
Začátečník | 141
+
0
-

Tohle mi ale nastavi tu třídu u každýho <tr> já potřebuji. Nastavit vždy jen u toho aktuálního.
Potřebuji nastavit třído stejný jako name input.

Něco takovýho:

if_exist($input->name){
    $renderer = $form->getRenderer();
    $renderer->wrappers['pair']['container'] = Html::el('tr')->class(''.$input->name.'');
}

Jak se to da napsat?
Najdu někde přehled tehle věcí? To nemuzu najít…Dík

Editoval masterr (19. 9. 2010 14:40)

arron
Člen | 464
+
0
-

masterr napsal(a):

Tohle mi ale nastavi tu třídu u každýho <tr> já potřebuji. Nastavit vždy jen u toho aktuálního.

To je pravda. Je potreba si uvedomit, ze ten renderer nedokaze cist programatorovy myslenky, kde by si pral jakou tridu. Proto je dobre ho vyuzivat, kdyz nechces nejake speciality. Da se mu nastavit spoustu parametru, ale vsechny plati pro cele renderovani (cili jak Ty rikas „u kazdyho <tr>“).

Jak se to da napsat?

Mam obavu, ze tohle pomoci ConventionalRenderer napsat nepujde. Takze bud si napises svuj vlastni renderer a nebo ten formular vyrenderujes rucne v sablone.

BTW. neumi jQuery hledat i nadrazene tagy? Tim by se to dalo vyresit.

Najdu někde přehled tehle věcí? To nemuzu najít…Dík

Nejsem si jisty, jestli je nekde nejak sepsano, co vsechno umi ConventionalRenderer, ale me osobne uplne nejvic pomohlo, kdyz jsem si prosel jeho zdrojovy kod. Tak jsem si uvedomil vsechny jeho moznosti a hlavne vsechny jeho omezeni.