abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:55 | Nová verze

    Wayback byl vydán ve verzi 0.1. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.

    Ladislav Hagara | Komentářů: 0
    dnes 13:33 | Nová verze

    Byla vydána nová verze 6.18 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově se lze k síti Tor připojit pomocí mostu WebTunnel. Tor Browser byl povýšen na verzi 14.5.5. Thunderbird na verzi 128.12.0. Další změny v příslušném seznamu.

    Ladislav Hagara | Komentářů: 0
    včera 14:33 | IT novinky

    Meta představila prototyp náramku, který snímá elektrickou aktivity svalů (povrchová elektromyografie, EMG) a umožňuje jemnými gesty ruky a prstů ovládat počítač nebo různá zařízení. Získané datové sady emg2qwerty a emg2pose jsou open source.

    Ladislav Hagara | Komentářů: 0
    včera 14:22 | Nová verze

    Byla vydána (𝕏) nová verze 25.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 25.7 je Visionary Viper. Přehled novinek v příspěvku na fóru.

    Ladislav Hagara | Komentářů: 0
    včera 13:33 | IT novinky

    Před 40 lety, 23. července 1985, společnost Commodore představila první počítač Amiga. Jednalo se o počítač "Amiga od Commodore", jenž byl později pojmenován Amiga 1000. Mělo se jednat o přímou konkurenci počítače Apple Macintosh uvedeného na trh v lednu 1984.

    Ladislav Hagara | Komentářů: 2
    včera 06:00 | IT novinky

    T‑Mobile USA ve spolupráci se Starlinkem spustil službu T-Satellite. Uživatelé služby mohou v odlehlých oblastech bez mobilního signálu aktuálně využívat satelitní síť s více než 650 satelity pro posílání a příjem zpráv, sdílení polohy, posílání zpráv na 911 a příjem upozornění, posílání obrázků a krátkých hlasových zpráv pomocí aplikace Zprávy Google. V plánu jsou také satelitní data.

    Ladislav Hagara | Komentářů: 9
    23.7. 21:55 | Komunita

    Společnost Proxmox Server Solutions stojící za virtualizační platformou Proxmox Virtual Environment věnovala 10 000 eur nadaci The Perl and Raku Foundation (TPRF).

    Ladislav Hagara | Komentářů: 2
    23.7. 21:22 | Bezpečnostní upozornění

    Byla vydána nová verze 2.4.65 svobodného multiplatformního webového serveru Apache (httpd). Řešena je bezpečnostní chyba CVE-2025-54090.

    Ladislav Hagara | Komentářů: 0
    23.7. 14:22 | IT novinky

    Společnost Proton AG stojící za Proton Mailem a dalšími službami přidala do svého portfolia AI asistenta Lumo.

    Ladislav Hagara | Komentářů: 7
    23.7. 12:22 | IT novinky

    Amazon koupil společnost Bee zaměřenou na nositelnou osobní AI aktuálně nabízející náramek Pioneer (YouTube) s mikrofony zaznamenávající vše kolem [𝕏, LinkedIn].

    Ladislav Hagara | Komentářů: 6
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (27%)
     (25%)
     (6%)
     (5%)
     (5%)
     (2%)
     (2%)
     (28%)
    Celkem 124 hlasů
     Komentářů: 16, poslední dnes 15:31
    Rozcestník

    Jak uložit a načíst obsah formuláře na straně klienta?

    8.12.2010 11:00 | Přečteno: 1242× | Programování | poslední úprava: 8.12.2010 15:41

    Dnes jsem řešil zdánlivě nezajímavou věc. Uchování obsahu formuláře, který je na webu stále vidět a jeho obsah by se neměl měnit, dokud nedojde ze strany uživatele ke změně a znovuodeslání. Zároveň je nemožné provést uložení například do SESSION, či jinak, a naplnění formuláře ze strany serveru - např. PHP - při vykreslování.

    Výše uvedená fakta mne vedla k jednoznačné volbě - COOKIES. Pravda, pokud je bude mít klient zakázané, řešení je k ničemu. Bude tedy využito JS, jQuery a několik rozšíření. První rozšířením bude skript pro čtení a nastavování hodnot ve formuláři (v ukázce uloženo do samostatného souboru - jquery.formvalues.js), dále budeme potřebovat jquery.json.js a jquery.cookie.js.

    A nyní je již vše jednoduché.

    <script src="http://code.jquery.com/jquery-1.4.4.js"></script>
    <script src="jquery.cookie.js"></script>
    <script src="jquery.json-2.2.min.js"></script>
    <script src="jquery.formvalues.js"></script>
    <title>Form</title>
    <script>
    /* <![CDATA[ */
    function storeForm() {
    	var date = new Date();
    	date.setTime(date.getTime() + (24 * 60 * 60 * 1000)); // 24 hours
    	$.cookie('cookie-form', $.compactJSON($('#form').values()), { path: '/', expires: date });
    }
    
    
    $(document).ready(function() {
    	if($.cookie('cookie-form') != null) {
    		$('#form').values($.secureEvalJSON($.cookie('cookie-form')));
    	}
    	
    });
    /* ]]> */
    </script>
    ...
    <form id="form" method="post" action="...">
    	<input type="text" name="firstname" value="" /><br />
    	<input type="text" name="lastname" value="" /><br />	
    	<input type="submit" value="Odeslat" onclick="storeForm()" />
    </form>
    

    Není to nic extra, ale třeba to někomu pomůže.

    Inspirováno komentáři - v případě využití local storage je řešení následující. Navíc bude potřeba jquery.jstorage.js a úprava:

    <script src="http://code.jquery.com/jquery-1.4.4.js"></script>
    <script src="jquery.cookie.js"></script>
    <script src="jquery.json-2.2.min.js"></script>
    <script src="jquery.formvalues.js"></script>
    <script src="jquery.jstorage.js"></script>
    <title>Form</title>
    <script>
    /* <![CDATA[ */
    function storeForm() {
    	if($.jStorage.storageAvailable()) {
    		$.jStorage.set('cookie-form', $('#form').values());
    	} else {
    		var date = new Date();
    		date.setTime(date.getTime() + (24 * 60 * 60 * 1000)); // 24 hours
    		$.cookie('cookie-form', $.compactJSON($('#form').values()), { path: '/', expires: date });
    	}
    }
    
    
    $(document).ready(function() {
    	if($.jStorage.storageAvailable()) {
    		if($.jStorage.get('cookie-form', null) != null) {
    			$('#form').values($.jStorage.get('cookie-form'));
    		}
    	} else {
    		if($.cookie('cookie-form') != null) {
    			$('#form').values($.secureEvalJSON($.cookie('cookie-form')));
    		}
    	}	
    });
    /* ]]> */
    </script>
    ...
    <form id="form" method="post" action="...">
    	<input type="text" name="firstname" value="" /><br />
    	<input type="text" name="lastname" value="" /><br />	
    	<input type="submit" value="Odeslat" onclick="storeForm()" />
    </form>
    

    Díky za nápad na zlepšení. O local storage jsem věděl, ale omezení COOKIES mne nenapadlo. Ještě jednou díky.

           

    Hodnocení: 67 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    8.12.2010 11:59 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Jak uložit a načíst obsah formuláře na straně klienta?
    Pozor na to, že množství cookies a jejich celková velikost je omezené, větší formulář by se tam nemusel vejít. Moderní prohlížeče mají různá rozšíření umožňující ukládat uživatelská data (některá i pro offline prohlížení), která mají větší kapacitu.
    8.12.2010 14:13 chrono
    Rozbalit Rozbalit vše Re: Jak uložit a načíst obsah formuláře na straně klienta?
    Presne tak. Na toto je lepšie použiť localStorage a cookies použiť len keď prehliadač localStorage nepodporuje, alebo je to zakázané. Navyše sa tie údaje nebudú, pri localStorage, zbytočne posielať serveru.
    Toman avatar 8.12.2010 15:44 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
    Rozbalit Rozbalit vše Re: Jak uložit a načíst obsah formuláře na straně klienta?
    Zápisek jsem doplnil o možnost local storage. Děkuji za věcné připomínky.
    8.12.2010 12:54 Senior Database Programmer
    Rozbalit Rozbalit vše Re: Jak uložit a načíst obsah formuláře na straně klienta?
    To som nepochopil. Píšeš, že cookies nemôžeš použiť pretože ich user môže mať vypnuté ale v tom JavaScripte to predsa ukladáš do cookies ?! Alebo tie cookies z tej JS knižnice JQuery sú iné ako normálne cookies browsera? Nevzťahuje sa na ne zákaz ak ich má user v browsery vypnuté? Sorry, za blbé otázky, niesom web developer.
    pavlix avatar 8.12.2010 13:24 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Jak uložit a načíst obsah formuláře na straně klienta?
    Psal, že nemůže použít SESSIONS, ne COOKIES.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    9.12.2010 20:16 zulu
    Rozbalit Rozbalit vše Re: Jak uložit a načíst obsah formuláře na straně klienta?

    Takže formulář, který je stále vidět.
    A jaký smysl teda má držení hodnot jinde než v něm?

    A nemůžeš ho naplnit na straně serveru.
    Pokud ho nemůžeš plnit, tak ho nemůžeš ani zpracovávat, tak k čemu tam je?

    Bedňa avatar 11.12.2010 14:06 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Jak uložit a načíst obsah formuláře na straně klienta?
    Nechápem zmysel, prečo tie dáta nemôžeš poslať cez POST?
    KERNEL ULTRAS video channel >>>

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.