Funguje ajax, payload, handle, ale nepřekreslí se snippet

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

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 | 1028
+
0
-

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

kuon
Člen | 17
+
0
-

Přesně tak! Jak jednoduché :-) Díky.

radekBrno
Člen | 61
+
0
-

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
+
0
-

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?