{"id":6196,"date":"2024-08-08T18:43:53","date_gmt":"2024-08-08T16:43:53","guid":{"rendered":"https:\/\/ekiwi.de\/?p=6196"},"modified":"2024-08-08T18:43:53","modified_gmt":"2024-08-08T16:43:53","slug":"javascript-formulardaten-im-browser-speichern-und-wieder-einlesen","status":"publish","type":"post","link":"https:\/\/ekiwi.de\/index.php\/6196\/javascript-formulardaten-im-browser-speichern-und-wieder-einlesen\/","title":{"rendered":"JavaScript: Formulardaten im Browser speichern und wieder einlesen"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Inhalt<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/ekiwi.de\/index.php\/6196\/javascript-formulardaten-im-browser-speichern-und-wieder-einlesen\/#Speichern_von_Formulardaten\" >Speichern von Formulardaten<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/ekiwi.de\/index.php\/6196\/javascript-formulardaten-im-browser-speichern-und-wieder-einlesen\/#Laden_von_Formulardaten\" >Laden von Formulardaten<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/ekiwi.de\/index.php\/6196\/javascript-formulardaten-im-browser-speichern-und-wieder-einlesen\/#Verwendung_zB_Laden_und_Speichern_Button\" >Verwendung, z.B. Laden und Speichern Button<\/a><\/li><\/ul><\/nav><\/div>\n<p>Speicherfunktion f\u00fcr Formulare.<\/p>\n<p><!--more--><\/p>\n<p>Gerade bei l\u00e4ngeren Formularen kann es hilfreich sein, dem Benutzer eine Speicherfunktion zu bieten. Er kann zu einem sp\u00e4teren Zeitpunkt die Formulardaten wieder laden. Die hier gezeigte L\u00f6sung speichert die Formulardaten im Local Storage des Browsers und l\u00e4dt diese auf Knopfdruck wieder. Das hei\u00dft die Daten verlassen den heimischen Computer des Anwenders nicht.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Speichern_von_Formulardaten\"><\/span>Speichern von Formulardaten<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Beginnen wir mit dem Speichern der Daten. Hier laden wir alle Daten des Formulars (ID ggf. Anpassen) und speichern diese in den lokalen Speicher des Browsers.<\/p>\n<pre>function saveFormData() {\r\n    const form = document.getElementById(&quot;form-id&quot;);\r\n    const formData = new FormData(form);\r\n    const object = {};\r\n    formData.forEach((value, key) =&gt; {\r\n        object[key] = value;\r\n    });\r\n    const json = JSON.stringify(object, null, 2);\r\n    localStorage.setItem('formData', json);\r\n    alert(&quot;Form data saved successfully.&quot;);\r\n}\r\n<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Laden_von_Formulardaten\"><\/span>Laden von Formulardaten<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Nun zum Laden der Daten. Hier laden wir die Daten wieder in den Speicher und weisen diese den Formularelementen zu. Um Probleme mit Pflichtfeldern vorzubeugen, sto\u00dfen wir auch die Validierung an.<\/p>\n<pre>function loadFormData() {\r\n    const json = localStorage.getItem('formData');\r\n    if (json) {\r\n        const data = JSON.parse(json);\r\n        for (const key in data) {\r\n            if (data.hasOwnProperty(key)) {\r\n                const element = document.getElementsByName(key)[0];\r\n                if (element) {\r\n                    element.value = data[key];\r\n                    \/\/ Trigger validation\r\n                    element.dispatchEvent(new Event('input', { bubbles: true }));\r\n                    element.dispatchEvent(new Event('change', { bubbles: true }));\r\n                }\r\n            }\r\n        }\r\n        alert(&quot;Form data loaded successfully.&quot;);\r\n    } else {\r\n        alert(&quot;No saved form data found.&quot;);\r\n    }\r\n}\r\n<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"Verwendung_zB_Laden_und_Speichern_Button\"><\/span>Verwendung, z.B. Laden und Speichern Button<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Ein Aufruf der Funktionen kann beispielsweise \u00fcber Buttons erfolgen:<\/p>\n<pre>&lt;button id=&quot;saveButton&quot; onclick=&quot;saveFormData()&quot; type=&quot;button&quot;&gt;Speichern&lt;\/button&gt;\r\n&lt;button id=&quot;loadButton&quot; onclick=&quot;loadFormData()&quot; type=&quot;button&quot;&gt;Laden&lt;\/button&gt;<\/pre>","protected":false},"excerpt":{"rendered":"<p>Speicherfunktion f\u00fcr Formulare.<\/p>\n","protected":false},"author":1,"featured_media":2260,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[15,13],"tags":[4,44],"class_list":["post-6196","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","category-programmierung","tag-html","tag-javascript"],"_links":{"self":[{"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/posts\/6196","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/comments?post=6196"}],"version-history":[{"count":0,"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/posts\/6196\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/media\/2260"}],"wp:attachment":[{"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/media?parent=6196"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/categories?post=6196"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ekiwi.de\/index.php\/wp-json\/wp\/v2\/tags?post=6196"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}