Jak vynutit $this->redirect při handle volání?
- Alsatian
- Člen | 175
Ahoj. Opět tápu :)
V šabloně Vykresluji formulář pomocí
{import '../components/form.latte'}
{include bootstrap4 obecneForm}
Ve „form.latte“ mám u File inputu tlačítko s linkem na odstranění obrázku
<a class="ajax btn btn-danger" n:href="fotoDelete!" data-confirm="Odstranit obrázek?">
A handler zpracovávám v presenteru, kterým formulář vykresluji
public function handleFotoDelete($id)
{
if($this->isAjax()) {
... // zde odstraním obrázek
$this->redirect('AdminEshopProdukt:edit', ['id' => $id]); // Tohle už nefunguje. Stránka se nepřekreslí.
}
$this->redirect… – tohle mi nechce fungovat. Stránka se nenačte
znovu ani když použiji
$this->redirect(‚this‘);
Napadá, prosím, někoho, co s tím? Ještě je zajímavé, že pokud přesměrování nastavím na jiný presenter, nebo jinou jeho akci, tak se taky nic nestane, ale pokud dám F5 (reload v prohlážeči), stránka se vykreslí v přesměrovaném presenteru.
- Alsatian
- Člen | 175
Ahoj. Neví, prosím, nikdo co s tím?
Znovu jsem dnes narazil na problém, kdy mám ajax odkaz s confirm dotazem,
tedy otázkou, jestli opravdu něco vykonat.
<a class="ajax" data-confirm="Opravdu něco vykonat?" n:href="neco!">Něco</a>
Po vykonání akce tlačítka nemůžu použít pro překreslení stránky
redrawControl (případně konkrétní snippet).
Proč? Na stránce je editační formulář, používající wysiwyg editor a
ten se mi po překreslení stránky (snippetu) již nevykreslí. Stačil by mi
tedy refresh celé stránky, ale ten prostě nefunguje při použití class
ajax :(
$this->redrawControl();
- Roman Halaxa
- Člen | 60
Alsatian napsal(a):
Ahoj. Neví, prosím, nikdo co s tím?
Znovu jsem dnes narazil na problém, kdy mám ajax odkaz s confirm dotazem, tedy otázkou, jestli opravdu něco vykonat.<a class="ajax" data-confirm="Opravdu něco vykonat?" n:href="neco!">Něco</a>
Po vykonání akce tlačítka nemůžu použít pro překreslení stránky redrawControl (případně konkrétní snippet).
Proč? Na stránce je editační formulář, používající wysiwyg editor a ten se mi po překreslení stránky (snippetu) již nevykreslí. Stačil by mi tedy refresh celé stránky, ale ten prostě nefunguje při použití class ajax :($this->redrawControl();
Zkusil jsem
<a class="ajax btn btn-danger" n:href="testHandler!" data-confirm="Odstranit obrázek?">
v presenteru
public function handleTestHandler()
{
$this->redirect('this');
}
S tím že nemám ten doplněk na ty data-confirm zprávičky tak možná je chyba tam ? Takhle to funguje bez problému. To je taková otázka hrozně ze široka že by to mohlo být cokoliv v tom projektu máš, proto na to asi nikdo ještě neodpověděl. Každopádně hodně štěstí
- Kamil Valenta
- Člen | 815
Moc nechápu, proč něco voláš ajaxově, abys pak udělal redirect. Tak rovnou ten ajax vypusť.
Jinak si to prolož dumpy, ať vidíš, kam to dojde. Tady v úkázce je výpustka, na které se může něco odehrát. Možná to k tomu redirectu vůbec nedojde…