AJAX – ukoncenie v handle
- ondrej1
- Člen | 13
Zdravim,
je prosim vas nejaka metoda ako elegantne ukoncit signal handleNieco bez toho
aby siel znovu renderDefault?
public function handleUzivatel($id) {
if ($this->isAjax()) {
[...]
$this->redrawControl('snippet--uzivatelia-' .$id);
exit();
}
}
S tym exitom to vyzera divne.
- David Matějka
- Moderator | 6445
mohlo by jit pouzit $this->sendTemplate()
.. ale proc se
potrebujes vyhnout renderDefault?
- ondrej1
- Člen | 13
Ide o prispevky, ktore taguju uzivatelia. Ak otaguju 1 prispevok a prispevkov na stranke je 100, mal som taky dojem, ze renderDefault, nacita vsetkych 100 prispevkov znovu.
Edit: ano, neprekresluje sa nic, aj ked ajaxove volanie prebehne a zapise do databazy
Editoval ondrej1 (23. 7. 2016 19:07)
- GEpic
- Člen | 566
ondrej1 napsal(a):
Ide o prispevky, ktore taguju uzivatelia. Ak otaguju 1 prispevok a prispevkov na stranke je 100, mal som taky dojem, ze renderDefault, nacita vsetkych 100 prispevkov znovu.
Edit: ano, neprekresluje sa nic, aj ked ajaxove volanie prebehne a zapise do databazy
Proto můžeš použít toto:
public function renderDefault()
{
if ($this->isAjax()) {
# nedelej nic
} else {
# nacti vypis prispevky, nebo to obratit na if (!$this->isAjax())
}
}
Ale co jsem tak pochopil z toho co píšeš, ty ani nic překreslovat nepotřebuješ, ne? Jen zapsat data a neposílat do šablony žádnou odpoveď či tak.
Editoval GEpic (23. 7. 2016 19:50)
- ondrej1
- Člen | 13
Nie, snippet s tagmi k 1 prispevku potrebujem prekreslit, aby pribudol ten
novy tag k prispevku.
Ale funguje to takto:
if ($this->isAjax()) {
$this->uzivatel->insertTag($id);
$this->redrawControl('uzivatelia');
}
teda prekreslit len obalovaci snippet
A ked mam ten exit() alebo je v renderDefault na zaciatku podmienka
if ($this->isAjax()) return;
naozaj neprekresli ziadny snippet, celkom tomu nechapem