Nastavení dynamického wrappers

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

Zdravím,
mám tento kód

<?php
$a = category::getMainCat();
foreach ($a as $option){
/*
   $renderer = $form->getRenderer();
   $renderer->wrappers['controls']['container'] = 'table id="'.$option->name.'"';
*/
$form->addGroup($option->name);
category::getCatListCheckbox($form,$option->id);
}
?>

A potřebuju skrývat / zobrazovat pomocí javascriptu daný obsah group. Problém je v tom, že ID toho table je proměnné, proto nelze využít to co je zakomentováno.
Celý vlastní render nějak nevim jak použít. A to nechci ani přemejšlet že bych obsah těch skupin (category::getCatListCheckbox($form,$option->id);) chtěl načítat Ajaxem, to už vůbec nevim jak vyřešit :/

redhead
Člen | 1313
+
0
-

teď jenom hypoteticky, nešlo by:

$group = $form->addGroup($option->name);
$group->setOption('container', Html::el('table id="'.$option->name.'"'));

ale jen uvažuju nahlas..

Jinak to s tím rendererem je hloupost, protože ten je jednotný pro celý formulář a ne pro jednotlivé prvky.

Druhou možností by bylo manuální renderovaní v šabloně :(

Editoval redhead (23. 8. 2009 18:11)

JakubKohout
Člen | 92
+
0
-

To by určitě šlo, také sem o tom už uvažoval, jenže problém nastává v tom že toto přepíše ten <fieldset> a né ten další <table>, takže 1) to vypadá špatně 2) potřebuju tomu dalšímu <table> nastavit css styl na display:none, aby defaultně byl skryt a zobrazil se až po akci kterou bych navěsil na <legend>.
Dalo by se to teoreticky vyřešit pomocí jQuery selectoru a dopracovat se k tomu, ale problém zase nastává v tom defaultním skrytí. Chtěl sem se tomu defaultnímu skrytí pomocí JS vyvarovat, ale nic mi asi nezbude :/