Jak vynutit $this->redirect při handle volání?

Alsatian
Člen | 164
+
0
-

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 | 164
+
0
-

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
+
0
-

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 | 762
+
0
-

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…

Alsatian
Člen | 164
+
0
-

Díky, máte pravdu. Někde tam bude zádrhel. Zkusím to v klidu postavit na čisté aplikaci a přidávat další věci. A proč to volám ajaxově? Jen k vůli potvrzovacímu dialogu před vykonáním. Netrklo mě, že to ajaxově volám úplně zbytečně. Děkuji :)