Jak provést skok na kotvu po odeslání formuláře?

MichalK
Člen | 3
+
0
-

Ahoj,
potřeboval bych poradit ohledně použití kotvy po odeslání formuláře a vykreslení na té samé stránce.
Zkoušel jsem tuto možnost:

$this->presenter->redirect('this#kotva');

Ale po provedení redirectu se mi už nezobrazí vykreslené komponenty po odeslání formuláře.
Je možné toto provést pomocí Nette, nebo se mám podívat po nějaké možnosti s javascriptem?
Předem děkuji za případné odpovědi.

Phalanx
Člen | 310
+
+2
-

Ale po provedení redirectu se mi už nezobrazí vykreslené komponenty po odeslání formuláře.

Jak sám píšeš:

  1. buď si dej jen <span id="kotva"></span> mimo ten formulář nebo
  2. můžeš mít ve formuláři něco jako
{if !empty($send)}
	<span id="kotva"></span>
{else}
	// vyresli formulář
{/if}

a ještě doplníš v onSuccess $template->send = true;

MichalK
Člen | 3
+
0
-

Já jsem to spíš myslel tak, že chci skočit na #kotva bez toho, aby se při přes redirect znovu načetla stránka.
Odešlu vlastně formulář pomocí
$form->addSubmit('tabulka', 'Zobraz tabulku')->onClick[] = [$this, 'renderTabulka'];
Do metody renderTabulka si odešlu nějaké proměnné, pomocí kterých vykreslím tabulku. Tabulka se mi zobrazí, ale potřeboval bych na ní sescrollovat. Když v metodě použiji renderTabulka redirect, tak mi tabulka zmizí.

Kamil Valenta
Člen | 762
+
+1
-

V renderu už redirect nemá co dělat.

Tabulka zmizí, protože ji generuješ na základě GETů, resp. POSTů z formu, že?

Prostě na ni odscrolluj javascriptem.

MichalK
Člen | 3
+
0
-

kamil_v napsal(a):

V renderu už redirect nemá co dělat.

Tabulka zmizí, protože ji generuješ na základě GETů, resp. POSTů z formu, že?

Prostě na ni odscrolluj javascriptem.

Přesně tak, posílám si proměnné přes POST. Udělám to tedy pomocí JS, nevěděl jsem, jestli není nějaké řešení přímo v Nette.
Děkuji za odpovědi.