Jak na jednoduchou zmenu obsahu ajaxem v nette?
- Kastan
- Člen | 4
Díky tohle přesně jsem měl na mysli jen mám 2 nejasnosti.
V
<a n:href="changeVariable!" class="ajax">Change variable!</a>
ten vykřičník za href má nějakou funkci?
A kdybych chtěl s timhle ajax dotazem poslat treba id tak bych to měl dát
za changeVariable! ?
A funkci upravit na handleChangeVariable (&id)
například.
- Ondřej Kubíček
- Člen | 494
tím vykřičníkem řekneš, že se spustí handle* metoda
jo, dáš to za to n:href="changeVariable!, 1"
tu metodu bez reference handleChangeVariable($id)
Editoval Ondřej Kubíček (6. 7. 2018 21:32)
- Kastan
- Člen | 4
Jak mám přes ajax vypsat pole? Píše mi to chybu Invalid argument supplied
for foreach()
v presenteru mám
` if ($this->isAjax()) {
$this->anyVariable = $this->database->table('odkazy')->where('vlastnik',$id);
$this->redrawControl('ajaxChange');} `
v db mám 2 položky které mají vlastni=1 a ty se snažím vypsat
v default.latte mám pak tohle na vypsání
´{snippet ajaxChange}
{foreach $anyVariable as $pole}
{$pole->odkaz}
{/foreach}
{/snippet}´
Tracy mi pak hlásí chybu Invalid argument supplied for foreach() ale když ji vypnu tak se normálně vypisuje, neví někdo o co jde?
Editoval Kastan (7. 7. 2018 13:34)
- duke
- Člen | 650
Kastan napsal:
Tracy mi pak hlásí chybu Invalid argument supplied for foreach() ale když ji vypnu tak se normálně vypisuje, neví někdo o co jde?
Jde o to, že v $anyVariable
nemáš pole ani iterátor,
nýbrž instanci třídy Nette\Database\Table\Selection
.
Chceš-li pole řádků, je třeba po volání metody where() volat ještě
metodu fetchAll() nebo fetchPairs().
A seznam se s tím, jak v tomto fóru formátovat kód.
Editoval duke (7. 7. 2018 14:38)