jak rozchodit ajax strankovani
- DanielWellington
- Člen | 17
ahoj,
rad bych se zeptal: snazim se podle tutorialu https://pla.nette.org/…ivajici-ajax
na svym vlastnim trosku odlisnym projektu a porad mi to nejak nefunguje. Bylo
potreba nektery veci udelat jinak, ptz ten tut je pro stary nette a proto bych
se rad zeptal jestli delam vsechno spravne:
- nejprve sem si zkopiroval /js/jquery.nette.js , /js/jquery.ajaxform.js do www/js (a jeste vytvoril podle tutorialu ajax.js). Samozrejme sem je prolinkoval s @layout.latte
- pak sem do base presenteru do metody render pridal
<? php
if ($this->isAjax()){
$this->invalidateControl('list');
}
?>
- a nakonec sem kolem bloku kt mi vykresluje prispevky, a mam tam i strankovani, umistil {snippet list}{/snipet}
Je potreba udelat jeste neco? Nekde neco prepsat nebo tak? Diky moc za kazdou radu. S nette sem zacatecnik a ajax celkove skoro vubec nechapu.
(Nette Framework 2.0.13)
Editoval DanielWellington (2. 1. 2014 23:47)
- Jan Suchánek
- Člen | 404
@DanielWellington: Dal si všem odkazům třídu?
class="ajax"
Na formátování php v příspěvcích používej /--php \--, lépe se čtou.
Editoval jenicek (2. 1. 2014 23:18)
- DanielWellington
- Člen | 17
No puvodne sem to tam nemel, ptz vykresluju ten paginator pomoci {control paginator} a nedoslo mi to. Ted sem si to nasel VisualPaginator/template.phtml a pridal vsem udkazum tu tridu o ktere mluvit, ale stale to nefunguje.
- David Matějka
- Moderator | 6445
muzes specifikovat „nefunguje“? provede se ajax request? provede se normalni request?
pomuzou ti developer tools, v chrome pod „F12“ a prepni si na kartu „Network“, jestli se ti vytvareji pozadavky apod, pripadne chyby jsou pak v karte „Console“
- Pavel Macháň
- Člen | 282
DanielWellington napsal(a):
ahoj,
rad bych se zeptal: snazim se podle tutorialu https://pla.nette.org/…ivajici-ajax na svym vlastnim trosku odlisnym projektu a porad mi to nejak nefunguje. Bylo potreba nektery veci udelat jinak, ptz ten tut je pro stary nette a proto bych se rad zeptal jestli delam vsechno spravne:
- nejprve sem si zkopiroval /js/jquery.nette.js , /js/jquery.ajaxform.js do www/js (a jeste vytvoril podle tutorialu ajax.js). Samozrejme sem je prolinkoval s @layout.latte
- pak sem do base presenteru do metody render pridal
<? php if ($this->isAjax()){ $this->invalidateControl('list'); } ?>
- a nakonec sem kolem bloku kt mi vykresluje prispevky, a mam tam i strankovani, umistil {snippet list}{/snipet}
Je potreba udelat jeste neco? Nekde neco prepsat nebo tak? Diky moc za kazdou radu. S nette sem zacatecnik a ajax celkove skoro vubec nechapu.
(Nette Framework 2.0.13)
Koukni jestli máš dobře nalinkované Jsko. Btw hoď sem kousek té šablony a časti kde voláš invalidateControl … takhle můžeme jen hádat
- DanielWellington
- Člen | 17
matej21:
super! Presne tohle sem potreboval. Nevedel sem prave jak si kontrolovat
funkcnost toho javascriptu… Ok, tak to bych mel asi vyladeny. Pouzival sem tam
nekolik deprecated funkci. Tak sem to opravil a aktualne resim tenhle
problem:
mam strankovani 1,2,{3},4,5,6. //jakoze sem na strance 3
Pokud si v tuhle chvili kliknu na next, prev nebo jakoukoliv jinou stranku, tak
me to tam bez nacitani hodi = funguje tak jak sem chtel. Pokud ale z tyhle
stranky chci jit na nejakou dalsi, tak uz se to zase nacita. Na dalsi me to zase
hodi bez nacitani, a pak se to zase nacita. Tak se to strida.
Mam teorii, ze ten ajax se pusti pri nacteni stranky, jakmile se ale dostanu na dalsi, tak uz se znovu nepusti a proto je potreba to znovu nacist.
Predpokladam, ze takhle jen z popisu se to asi bude tezko resit, ale presto se zeptam jestli nekdo nema napad co by s tim mohlo byt? Nebo jestli se to takhle ma normalne chovat? fakt nevim…
Editoval DanielWellington (3. 1. 2014 0:36)
- thunderbuff
- Člen | 164
To je tím, že na elementy načtené javascriptem se nenabinduje javascript, co by je obsluhoval.
zkus nahradit javascrpt obsluhující a.ajax tímto:
<script>
$('body').on("click", 'a.ajax', function(event) {
event.preventDefault();
$.get(this.href);
});
</script>