Použitie javascriptovej premennej v nette.ajax.js

erehulka
Člen | 5
+
0
-

Ahojte,
potrebujem spraviť takú vec, že mám kalendár s udalosťami (fullcalendar.io), tak po kliknutí na udalosť sa otvorí modal a bude obsahovať dáta danej udalosti. Ako si to predstavujem je, že po kliknutí sa spustí AJAX funkcia v Presenteri, ktorá získa na vstupe id danej udalosti, z databázy vyberie všetky dáta podľa id a dá ich do templateu, pričom prekreslí modal aby obsahoval len aktuálne dáta danej udalosti. Problém je ale ten, že fullcalendar.io má v javascripte funkciu „eventClick“, ktorá sa spustí keď sa klikne na nejakú udalosť. Ako teda viem v javascripte spustiť nejakú AJAX funkciu v Presenteri, pričom jej predám nejaké id?

Takto momentálne vyzerá ten javascript:

<script>
...
eventClick: function (info) {
	info.el.style.borderColor = 'red';
	// $('#exampleModalCenter').modal('show');
	$.nette.ajax({
		type: 'GET',
		url: {plink redrawModal!, $id = info.event.id},
	});
},
...
</script>

Problém je v tom, že neviem do toho plink dať javascriptovú premennú info.event.id. V presenteri už je potom funkcia handleRedrawModal($id).

Plus ešte dodatok, bude sa to dať aj bez komponenty? Alebo si mám dať ten modal do komponenty a to sa bude dať prekresliť lepšie?

Vďaka.

teekey99
Člen | 45
+
-3
-

Není to sice úplně ideální, ale nepomohlo by, kdyby sis ten link složil sám, makro použil jen na vygenerování cesty k signálu a potom doplnil id manuálně?

<script>
...
eventClick: function (info) {
	info.el.style.borderColor = 'red';
	// $('#exampleModalCenter').modal('show');
	$.nette.ajax({
		type: 'GET',
		url: {plink redrawModal!} + '?id=' + info.event.id,
	});
},
...
</script>
teekey99
Člen | 45
+
0
-

Ještě koukni na tohle https://forum.nette.org/…-javascriptu.

CZechBoY
Člen | 3608
+
+2
-

Vetsinou to resim placeholderem – tzn. vygeneruju url pro id 99999 a potom v js zavolam replace 99999 s realnym id.

teekey99
Člen | 45
+
+1
-

CZechBoY napsal(a):

Vetsinou to resim placeholderem – tzn. vygeneruju url pro id 99999 a potom v js zavolam replace 99999 s realnym id.

Jo, všimnul jsem si, že jste to řešili v tom threadu, na který jsem dával odkaz. Můj původní návrh je samozřejmě prasárna, ale aspoň jsem to zkusil :D Nejsem zvyklý používat JS v šablonách, takže jsem asi tohle nikdy nepotřeboval. Každopádně ta metoda s placeholderem je elegantní, takže se o vygenerování celýho linku skutečně stará generátor v presenteru.

erehulka
Člen | 5
+
0
-

Jo, placeholder jak si posielal funguje. Super, velka vďaka :)