DynamicContainer – Dynamické přidávání/odebírání FormContainerů
- darthcz
- Člen | 113
Musel jsem pro verzi 2.0 upravit kód. Psalo to něco ve stylu, že nemůžu použít $this.. Tak kdyby měl někdo stejný problém, je nutné přepsat funkci fetchNameAndModifiers například takto:
protected static function fetchNameAndModifiers($code) {
$name = \Nette\Templates\LatteFilter::fetchToken($code);
$latte = new \Nette\Templates\LatteMacros();
$modifiers = $latte->formatArray($code);
$name = String::startsWith($name, '$') ? $name : "'$name'";
//$modifiers = LatteMacros::formatArray($content);
$modifiers = $modifiers ?: "array()";
return array($name, $modifiers);
}
- Foowie
- Člen | 269
Ano, jako ostatní formuláře.
- Přidat jquery, jquery.nette. jquery.ajaxform a nějakou inicializaci na ajax požadavky submitů … například
$(":submit.ajax").live("click", function (event) {
$(this).ajaxSubmit();
return false;
});
- Obalit formulář snippetem, např
{snippet form}{control form}{/snippet}
- Někde (např v render metodě) zavolat invalidaci snippetu
if($this->isAjax() && $this["form"]->isSubmitted())
$this->invalidateControl("form");
Toť vše …
Edit: „ajax třída“ se dá nastavit pomocí
$dynamicContainer->setAjax(true, "ajaxClass");
Editoval Foowie (31. 1. 2011 12:07)
- Hanz
- Člen | 16
Foowie napsal(a):
Ano, jako ostatní formuláře.
- Přidat jquery, jquery.nette. jquery.ajaxform a nějakou inicializaci na ajax požadavky submitů … například
$(":submit.ajax").live("click", function (event) { $(this).ajaxSubmit(); return false; });
- Obalit formulář snippetem, např
{snippet form}{control form}{/snippet}
- Někde (např v render metodě) zavolat invalidaci snippetu
if($this->isAjax() && $this["form"]->isSubmitted()) $this->invalidateControl("form");
Toť vše …
Edit: „ajax třída“ se dá nastavit pomocí
$dynamicContainer->setAjax(true, "ajaxClass");
Děkuji za reakci.
Jinak jsem narazil na jednu „chybu“. Pokud přidám DynamicContainer do
formuláře a pak nastavím výchozí hodnoty přes setDefaults, tak se
automaticky nepřidá potřebné množství polí. Sice se ten počet polí dá
nastavit ručně, ale myslím, že by bylo přívětivější, kdyby se
přidaly samy.