Ajaxové překreslení formuláře, nebo download souboru
- Šaman
- Člen | 2658
Ahoj. Mám formulář, kde sbírám data pro vygenerování souboru. Když je vše ok, vygeneruji soubor a vrátím fileresponse. Když to není ok, chci překreslit nějaké snippety (flashmessage třeba).
Problém je, že překreslování funguje jen pokud je formulář ajaxový a
stahováni souboru jen pokud ajaxový není.
Napadá vás, jak z toho ven? Třeba vyvolat překreslení snippetů v
onError
i když formulář není ajaxový?
(používám nette.ajax.js
)
Díky.
- Phalanx
- Člen | 310
Ahoj, řeší to tady:
https://stackoverflow.com/…jax-call-php
Zaujala mě nejvíc poslední odpověď – skrytý iframe.
- Andy3
- Člen | 15
@Phalanx Drive, nez byl jeste Ajax, tak se to delalo prave pres
iframe. Problem tohodle reseni je, ze vlastne Ajaxem vyvolas
dalsi „Ajax“. Blbe se resi status code, musis si to vyresit sam podle obsahu
co iframe vrati atd. To jak pise @MajklNajt je asi idealni reseni, jen to
poskladani a ulozeni delat mezi bodem 1. a 2.
Podivej se na to z pohledu „typovosti“. Vratim html(json) nebo file neni uplne idealni.
Editoval Andy3 (10. 7. 2019 20:22)
- Šaman
- Člen | 2658
Ahoj, tak to otevírám ještě jednou.
V minulém projektu (Nette 2.4, PHP 7.4, nette.ajax) mi fungovalo ajaxové
odeslání formuláře, v obsluze si uložit vygenerovaný soubor na disk a
redirectnout na handle
nebo action
, která jen
odeslala soubor uživateli.
Teď mám nový projekt (Nette 3, PHP 7.4, Naja) a soubor se mi odmítá
stáhnout. Po dvou dnech jsem zjistil, že problém není v tom, že místo
nette.ajax používám Naju, ale v tom že i po redirectu mi zůstává
$this->isAjax() === true
. Tedy že zůstává nastavená
hlavička requestu 'X-Requested-With' => 'XMLHttpRequest'
.
Řešil někdo podobný problém? Jak zařídit, aby po redirectu už nebyl nastavený ajax?
- Šaman
- Člen | 2658
Tak vyřešeno.
nette.ajax.js
toto opravdu nedělal a po redirectu se provedl neajaxový požadaveknaja.js
to popisuje přímo v dokumentaci – běžně drží ajaxovost i po redirectech, ale dá se to vypnout- ale funguje mi to až v
naja 2
Nastavení tvrdého neajaxového redirectu pro konkrétní adresy v Naja 2.
Editoval Šaman (25. 3. 2022 0:33)