Podmínka s isSuccess v případě nastavené setAction u formuláře
- Gill
- Člen | 13
Ahoj,
mám formulářovou stránku u které chci data zapsat do textového souboru a ten poté uživateli dát stáhnout. Kód mám přímo v HTML stránce, žádné šablony nebo pod.
Na stránce s formulářem mám nastaveno
<?php
$form ->setAction('zpracuj.php') // v tomto souboru je pouze vynucené stáhnutí souboru pomocí header
->setMethod('POP');
?>
V hlavní stránce s formulářem mám na konci tuto podmínku
<?php
if ($form->isSuccess())
{//načtení hodnot z formuláře a jejich zápis do texťáku, který po té nechávám stáhnout}
?>
V případě že ale mám setAction(‚zpracuj.php‘), tak mi nefunguje po stisku odesílacího tlačítka ve formuláři daná podmínka, neproběhne. Nevíte prosím jakou jinou podmínku zvolit, aby se mi po stisku odesílacího tlačítka projela?
- Ot@s
- Backer | 476
Otázka zní, jak nettí formulář zjistí, že je odeslaný. Zjistí to pomocí signálu, který si automaticky vygeneruje do atributu action (onen parametr do=…-submit). Když použiješ vlastní URL via setAction a nedoplníš tam ten signál, tak formulář o odeslání neví.
Z Tvého příspěvku pak není jasné, proč do action dáváš skript zpracuj.php a někde jinde se ptáš na isSuccess. To mě celé přijde nějaké zmatečné, resp. nerozumím tomu…
- Gill
- Člen | 13
hAssassin: překlep… myšleno pochopitelně POST
Ot@s: skript do setAction dávám, jelikož kódy header pro
stáhnutí souboru, nemůžou být na stéjné stránce kde mám výpis
formuláře pomocí echo. Moje otázka teda zní jak jinak než s setAction to
udělat.
enumag: Vy jste na to co potřebuju přišel, ale jak prosím provést to přesměrování :(. Nepoužívám presenter, mám to všechno v jedné stránce. Takto mi příkaz nefunguje – neznámá funkce redirectUrl.
<?php
if ($form->isSuccess()) {
// ... zapis do souboru
redirectUrl('zpracuj.php');
}
?>
- Gill
- Člen | 13
header(‚Location: …‘); nemůžu použít, jelikož prvně potřebuju ten formulář celý vykreslit a přesměrovat až po kliknutí na odesílací tlačítko. Je to ten samý problém s header, kdy je hlavička už odeslána vykreslením toho formuláře. Proto mám ten kód pro uložení souboru zvlášť. :(