Formulář & uložení JavaScriptem
12 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Mám průměrné znalosti html, css a php, ale vůbec neoplývám znalostmi JavaScriptu, tak bych potřeboval poradit: Na stránce page1 mám nějaký formulář, na konci tlačítko uložit, které data z formuláře předá např. stránce page2, která aktualizuje záznamy v mysql, až potud vše zvládám :) Teď bych chtěl nějak ošetřit, aby v okamžiku, kdy uživatel bude chtít přejít na jinou stránku bez uložení, tak vyskočilo okýnko s varováním "Neuložili jste aktuální data, přejete si je uložit?" a možnostmi ano (tzn. data z formuláře se odešlou na page2) a ne (dojde k přesměrování na stránku, kam uživatel původně chtěl. Na netu jsem tak nějak posbíral, že to ošetřím pomocí onUnload, které bude volat nějaký takovýhle skript: <script type="text/javascript"> promenna = confirm("Neuložili jste, chcete uložit?"); if (promenna) CO TO MÁ BÝT; else A CO MÁ BÝT TADY; </script> Takže jediný problém jsou místa CO TO MÁ BÝT a A CO MÁ BÝT TADY.. Prosím poradíte mi někdo jak na to? Předem mockrát děkuju..
-
tak pokud bude true, tak bych folal něco jako nazev_formulare.submit(), return false; a v opačném případě asi return true;
-
Vyzkouším - momentík...
-
ale teď mě tak napadá, že událost on_unload nastane zřejmě i při odeslání na tu požadovanou stránku :-/
-
Funguje to bezvadně, tohle jsem přesně potřeboval, ale ještě to má jednu mouchu: To okno mi tam skáče, i když kliknu na uložit pod formulářem - bylo by možný tenhle případ nějak odfiltrovat? Teď totiž dá člověk pod formulářem tlačítko uložit a vyskočí mu okno, že to neuložil, jestli to chce uložit a on to musí ještě jednou potvrdit :(
-
jj, přesně to jsem psal nad tím :) ale zatím mě nenapadá, jak, snad by se dalo kontrolovat, jestli byl volán ten submit, zkusím popřemýšlet a kdyžtak dám vědět...
-
No jo, koukám, odeslals to 14 vteřin přede mnou :) Prosím zkus popřemýšlet a kdyžtak dej vědět...
-
<ot> to bylo 14 minut před tebou ;-) </ot>
-
no možná na ten formulář připojit událost onSubmit="odeslano=true;" a pak na události onUnload přidat na začátek kontrolu if (odeslano) return false; ale nejsem si jist, kterou událost to zpracovává dříve a jestli to půjde, zkus to (jinak logicky by asi měl zpracovávat onSubmit, takže by to mohlo jít)
-
Tak teď to nedělá vůbec nic :(
-
Ale stačilo úplně na začátek stránky dát odeslano = false; a je to :) Už to běhá přesně tak, jak jsem si představoval, díky moc
-
tož to jsem rád :)