Ajaxové volání funkce z presenteru
- Felix
- Nette Core | 1247
Pokud mas vice handleru, tak samozrejme muzes volat vice naraz.
public function handleA(){
// Some magic..
$this->redrawControl('a');
}
public function handleB(){
// Some magic..
$this->redrawControl('b');
}
public function handleAb(){
// Some magic
$this->handleA();
$this->handleB();
}
Pripadne idealne tu manipulaci odstinit do jinych privatnich metod a pak to muzes volat z jednotlivych handleru dle libosti.
- vaclav147
- Člen | 7
Já bych potřeboval toto:
public function renderDefault(){
// pri spusteni teto metody potrebuju aby se na pozadi provedla metoda handleA ajaxove
handleA(); // kdyz volam takto tak se ajaxove neprovede, volam to spravne a mam chybu jinde? nebo se to řeší jinak
}
public function handleA(){
}
- David Matějka
- Moderator | 6445
Na serveru nemuzes vyvolat ajaxovy pozadavek. A chybeji ti zaklady PHP,
handleA vola klasickou funkci, kdyz chces volat metodu na objektu, musis
$this->handleA()
.
Co konkretne potrebujes?
Editoval matej21 (25. 6. 2014 13:15)
- Jan Suchánek
- Člen | 404
Tak to musíš zajistit pomocí jquery např. s doplňkem nette.ajax.js
<script>
$(function(){
$.nette.ext('example-load', {
load: function (rh) {
$.nette.ajax('example-url'); // Todo
// Pokud přidáváš javascript k konkrétní šabloně latte, můžeš místo url používat {plink}
},
});
});
</script>
Rozhodně v presenteru nemůžeš řešit co se bude tahat na pozadí ajaxem po vykreslení stránky, to prostě musíš napsat, naprogramovat sám.
Editoval jenicek (25. 6. 2014 13:58)
- David Matějka
- Moderator | 6445
Pokud nechces, aby uzivatel ten pozadavek videl, pak to neni ajaxovy pozadavek. Proste posli treba pomoci curl-u http request na onen vzdaleny server.