Použitie javascriptovej premennej v nette.ajax.js
- erehulka
- Člen | 5
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
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
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.