Jak provést skok na kotvu po odeslání formuláře?
- MichalK
- Člen | 3
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
Ale po provedení redirectu se mi už nezobrazí vykreslené komponenty po odeslání formuláře.
Jak sám píšeš:
- buď si dej jen
<span id="kotva"></span>
mimo ten formulář nebo - 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
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 | 822
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
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.