Funguje ajax, payload, handle, ale nepřekreslí se snippet
- kuon
- Člen | 17
Ahoj,
pročetl jsem plno fór s touto tématikou, ale můj základní problém jsem
nevyřešil. Používám nette 2.4, funguje mi prakticky vše potřebné
včetně ajaxových požadavků, odesílání a přijímaní dat přes payload,
stahování souborů přes handle atd., ale nemohu nijak zprovoznit
překreslení snippetů volané z handelu po kliknutí na odkaz. Při
odhalování chyby jsem vše zjednodušil už na primitivní funkci, ale stejně
mi to nepřekresluje.
V šabloně mám:
<a class="ajax" n:href="Komobsah!">Překresli</a>
{snippet obsah}
<h3 class="box-title">{$TEM_kom_obsah}</h3>
{/snippet}
V presenteru:
public function handleKomobsah()
{
$this->template->TEM_kom_obsah = 'OK ajax';
$this->redrawControl('obsah');
}
Tracy mi ukazuje, že požadavek byl řádně odeslán (GET https://xxxx/komunikace?…), ale snippet se nepřekreslí. „nette.ajax.js“ mám samozřejmě nalinkovaný a spouštím ho „$.nette.init();“. Používám „jquery-3.1.1.min.js“.
Poradíte někdo, kde může být chyba?
Editoval kuon (31. 1. 2017 9:46)
- jiri.pudil
- Nette Blogger | 1029
Kde ještě posíláš do šablony TEM_kom_obsah
? Pokud
v render metodě, přepíšeš si tím hodnotu nastavenou v handle, viz životní
cyklus presenteru
- radekBrno
- Člen | 61
Mám továrničku pro formulář s vlastní šablonou, kterou nastavuji v metodě render. Formulář si pomocí JavaScriptu upravím a když kliknu na submit tlačítko, tak se mi formulář přepíše do původní podoby ⇒ ztráta upravených položek. Jak mám obejít metodu render při odeslání formuláře?
- radekBrno
- Člen | 61
Dnes jsem si s tím ještě hrál a pokud formulář zpracuji přes metodu
$form->onSubmit[] = array($this, 'sectionAddEditFormSucceeded');
,
tak se formulář zpracuje a všechna data (i ta načtená přes AJAX) jsou
uložena. Pokud to pustím přes metodu onSuccess, tak se AJAXem načtená data
ztratí a zobrazí se chybové hlášky ohledně nevyplnění povinných prvků.
Nevíte, kde může být problém?