{"id":1130,"date":"2017-10-17T20:49:07","date_gmt":"2017-10-17T20:49:07","guid":{"rendered":"http:\/\/luisrodriguez.pe\/blog\/?p=1130"},"modified":"2017-10-20T21:59:53","modified_gmt":"2017-10-20T21:59:53","slug":"guardar-del-formulario-tiempo-real-localstorage","status":"publish","type":"post","link":"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/","title":{"rendered":"Guardar datos del  formulario en tiempo real  (LocalStorage)"},"content":{"rendered":"<p>En alg\u00fan momento te habr\u00e1s topado con formulario que tienen varias etapas y por alg\u00fan motivo debes recargar la pagina para seguir al siguiente paso y claro como aun no termina el registro no consideramos apropiado guardar aun esto a la base de datos y es algo engorroso estar creando una tabla temporal.<\/p>\n<p>las soluciones pueden ser meterlo todo en una session en php\u00a0 o utilizando lo nuevo (OK no tan nuevo) de javascript <a href=\"https:\/\/luisrodriguez.pe\/blog\/ejemplo-de-localstorage-html5\/\">LocalStorage<\/a>.<\/p>\n<blockquote><p>Grabaremos en <a href=\"https:\/\/luisrodriguez.pe\/blog\/ejemplo-de-localstorage-html5\/\">LocalStorage<\/a>\u00a0en <strong>tiempo real<\/strong><\/p><\/blockquote>\n<p>para ellos la idea es simple usaremos una funci\u00f3n nativa <strong><a href=\"https:\/\/www.w3schools.com\/jsref\/met_win_setinterval.asp\">setInterval<\/a>\u00a0\u00a0<\/strong>para\u00a0guarde cada segundo lo que tengamos en los input&#8217;s.<\/p>\n<h4>como funciona?<\/h4>\n<p>Explico que hace el script y es algo simple usamos each para hacer un recorrido por todos los input , select y textarea (se puede agregar mas tipos) que tengamos en el <a href=\"https:\/\/www.w3schools.com\/js\/js_htmldom.asp\">DOM<\/a>\u00a0y capturamos el valor y lo metemos en variables localstorage que creamos con el nombre del elemento\u00a0sea\u00a0input , select\u00a0o\u00a0 textarea y con su valor, esto sucedera cada segundo.<br \/>\nVolvemos hacer otro recorrido de lo de los elementos\u00a0\u00a0input , select\u00a0o\u00a0\u00a0textarea para obtener los datos de los localstorage ya que\u00a0\u00a0para identificarlos necesitamos los nombres de estos elementos.<\/p>\n<p>les dejo un ejemplo en funcionamiento:<\/p>\n<h4>El script<\/h4>\n<pre><code>\r\n$(document).ready(function(){\r\n\r\n                $('input[type=\"text\"],select,textarea').each(function(){    \r\n                        var name = $(this).attr('name'); \r\n                        value=localStorage.getItem(name);\r\n                        var value = $(this).val(value);\r\n                 })\r\n\r\n                setInterval(function(){\r\n                    $('input[type=\"text\"],select,textarea').each(function(){    \r\n                        var name = $(this).attr('name');\r\n                        var value = $(this).val();\r\n                        localStorage.setItem(name, value);\r\n                    })\r\n                    \r\n\r\n                }, 1000);                 \r\n            })\r\n<\/code>\r\n<\/pre>\n<p><a href=\"https:\/\/jsfiddle.net\/luizmirodriguez\/mseybbgj\/\">ejemplo online.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"En alg\u00fan momento te habr\u00e1s topado con formulario que tienen varias etapas y por alg\u00fan motivo debes recargar la pagina para seguir al siguiente paso y claro como aun no termina el registro no consideramos apropiado guardar aun esto a la base de datos y es algo engorroso estar creando una tabla temporal. las soluciones[&#8230;]","protected":false},"author":1,"featured_media":1138,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,11],"tags":[22,55,148],"class_list":["post-1130","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","category-utilidades","tag-javascript-2","tag-localstorage","tag-tiempo-real"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Guardar datos del formulario en tiempo real (LocalStorage) - Blog Luis Rodriguez<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Guardar datos del formulario en tiempo real (LocalStorage) - Blog Luis Rodriguez\" \/>\n<meta property=\"og:description\" content=\"En alg\u00fan momento te habr\u00e1s topado con formulario que tienen varias etapas y por alg\u00fan motivo debes recargar la pagina para seguir al siguiente paso y claro como aun no termina el registro no consideramos apropiado guardar aun esto a la base de datos y es algo engorroso estar creando una tabla temporal. las soluciones[...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Luis Rodriguez\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/luisrodriguez.pe\" \/>\n<meta property=\"article:published_time\" content=\"2017-10-17T20:49:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-10-20T21:59:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2017\/10\/localstorage-feature.png\" \/>\n\t<meta property=\"og:image:width\" content=\"760\" \/>\n\t<meta property=\"og:image:height\" content=\"288\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Luis Rodriguez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@luizmirodriguez\" \/>\n<meta name=\"twitter:site\" content=\"@luizmirodriguez\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Luis Rodriguez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/\"},\"author\":{\"name\":\"Luis Rodriguez\",\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/#\/schema\/person\/ec55de81e01fdaf3533eb78f6a49090c\"},\"headline\":\"Guardar datos del formulario en tiempo real (LocalStorage)\",\"datePublished\":\"2017-10-17T20:49:07+00:00\",\"dateModified\":\"2017-10-20T21:59:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/\"},\"wordCount\":218,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2017\/10\/localstorage-feature.png\",\"keywords\":[\"javascript\",\"localstorage\",\"tiempo real\"],\"articleSection\":[\"JAVASCRIPT\",\"Utilidades\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/\",\"url\":\"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/\",\"name\":\"Guardar datos del formulario en tiempo real (LocalStorage) - Blog Luis Rodriguez\",\"isPartOf\":{\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2017\/10\/localstorage-feature.png\",\"datePublished\":\"2017-10-17T20:49:07+00:00\",\"dateModified\":\"2017-10-20T21:59:53+00:00\",\"author\":{\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/#\/schema\/person\/ec55de81e01fdaf3533eb78f6a49090c\"},\"breadcrumb\":{\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/#primaryimage\",\"url\":\"https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2017\/10\/localstorage-feature.png\",\"contentUrl\":\"https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2017\/10\/localstorage-feature.png\",\"width\":760,\"height\":288},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/luisrodriguez.pe\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Guardar datos del formulario en tiempo real (LocalStorage)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/#website\",\"url\":\"https:\/\/luisrodriguez.pe\/blog\/\",\"name\":\"Blog Luis Rodriguez\",\"description\":\"Analytics Developer\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/luisrodriguez.pe\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/luisrodriguez.pe\/blog\/#\/schema\/person\/ec55de81e01fdaf3533eb78f6a49090c\",\"name\":\"Luis Rodriguez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/3b0f9734b267ecb38e1860734b4caebda4efa8be9a2bb536862b6a2ba23afa82?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3b0f9734b267ecb38e1860734b4caebda4efa8be9a2bb536862b6a2ba23afa82?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3b0f9734b267ecb38e1860734b4caebda4efa8be9a2bb536862b6a2ba23afa82?s=96&d=mm&r=g\",\"caption\":\"Luis Rodriguez\"},\"description\":\"Hola, Soy Luis Rodriguez, radico en Lima \u2013 Per\u00fa, formado en una carrera inform\u00e1tica, desempe\u00f1ando desde el 2007 como programador web y viendo proyectos desde Front End y Back End a lo que me perfile como Full Stack. Esta Experiencia junto a mi inter\u00e9s en la Anal\u00edtica Web me ayud\u00f3 mucho entender el funcionamiento interno de las herramientas de anal\u00edtica, con las que vengo trabajo activamente desde 2017. Linkedin\",\"sameAs\":[\"http:\/\/luisrodriguez.pe\"],\"url\":\"https:\/\/luisrodriguez.pe\/blog\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Guardar datos del formulario en tiempo real (LocalStorage) - Blog Luis Rodriguez","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/","og_locale":"es_ES","og_type":"article","og_title":"Guardar datos del formulario en tiempo real (LocalStorage) - Blog Luis Rodriguez","og_description":"En alg\u00fan momento te habr\u00e1s topado con formulario que tienen varias etapas y por alg\u00fan motivo debes recargar la pagina para seguir al siguiente paso y claro como aun no termina el registro no consideramos apropiado guardar aun esto a la base de datos y es algo engorroso estar creando una tabla temporal. las soluciones[...]","og_url":"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/","og_site_name":"Blog Luis Rodriguez","article_publisher":"https:\/\/www.facebook.com\/luisrodriguez.pe","article_published_time":"2017-10-17T20:49:07+00:00","article_modified_time":"2017-10-20T21:59:53+00:00","og_image":[{"width":760,"height":288,"url":"https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2017\/10\/localstorage-feature.png","type":"image\/png"}],"author":"Luis Rodriguez","twitter_card":"summary_large_image","twitter_creator":"@luizmirodriguez","twitter_site":"@luizmirodriguez","twitter_misc":{"Escrito por":"Luis Rodriguez","Tiempo de lectura":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/#article","isPartOf":{"@id":"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/"},"author":{"name":"Luis Rodriguez","@id":"https:\/\/luisrodriguez.pe\/blog\/#\/schema\/person\/ec55de81e01fdaf3533eb78f6a49090c"},"headline":"Guardar datos del formulario en tiempo real (LocalStorage)","datePublished":"2017-10-17T20:49:07+00:00","dateModified":"2017-10-20T21:59:53+00:00","mainEntityOfPage":{"@id":"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/"},"wordCount":218,"commentCount":0,"image":{"@id":"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/#primaryimage"},"thumbnailUrl":"https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2017\/10\/localstorage-feature.png","keywords":["javascript","localstorage","tiempo real"],"articleSection":["JAVASCRIPT","Utilidades"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/","url":"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/","name":"Guardar datos del formulario en tiempo real (LocalStorage) - Blog Luis Rodriguez","isPartOf":{"@id":"https:\/\/luisrodriguez.pe\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/#primaryimage"},"image":{"@id":"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/#primaryimage"},"thumbnailUrl":"https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2017\/10\/localstorage-feature.png","datePublished":"2017-10-17T20:49:07+00:00","dateModified":"2017-10-20T21:59:53+00:00","author":{"@id":"https:\/\/luisrodriguez.pe\/blog\/#\/schema\/person\/ec55de81e01fdaf3533eb78f6a49090c"},"breadcrumb":{"@id":"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/#primaryimage","url":"https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2017\/10\/localstorage-feature.png","contentUrl":"https:\/\/luisrodriguez.pe\/blog\/wp-content\/uploads\/2017\/10\/localstorage-feature.png","width":760,"height":288},{"@type":"BreadcrumbList","@id":"https:\/\/luisrodriguez.pe\/blog\/guardar-del-formulario-tiempo-real-localstorage\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/luisrodriguez.pe\/blog\/"},{"@type":"ListItem","position":2,"name":"Guardar datos del formulario en tiempo real (LocalStorage)"}]},{"@type":"WebSite","@id":"https:\/\/luisrodriguez.pe\/blog\/#website","url":"https:\/\/luisrodriguez.pe\/blog\/","name":"Blog Luis Rodriguez","description":"Analytics Developer","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/luisrodriguez.pe\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/luisrodriguez.pe\/blog\/#\/schema\/person\/ec55de81e01fdaf3533eb78f6a49090c","name":"Luis Rodriguez","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/3b0f9734b267ecb38e1860734b4caebda4efa8be9a2bb536862b6a2ba23afa82?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3b0f9734b267ecb38e1860734b4caebda4efa8be9a2bb536862b6a2ba23afa82?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3b0f9734b267ecb38e1860734b4caebda4efa8be9a2bb536862b6a2ba23afa82?s=96&d=mm&r=g","caption":"Luis Rodriguez"},"description":"Hola, Soy Luis Rodriguez, radico en Lima \u2013 Per\u00fa, formado en una carrera inform\u00e1tica, desempe\u00f1ando desde el 2007 como programador web y viendo proyectos desde Front End y Back End a lo que me perfile como Full Stack. Esta Experiencia junto a mi inter\u00e9s en la Anal\u00edtica Web me ayud\u00f3 mucho entender el funcionamiento interno de las herramientas de anal\u00edtica, con las que vengo trabajo activamente desde 2017. Linkedin","sameAs":["http:\/\/luisrodriguez.pe"],"url":"https:\/\/luisrodriguez.pe\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/posts\/1130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/comments?post=1130"}],"version-history":[{"count":7,"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/posts\/1130\/revisions"}],"predecessor-version":[{"id":1139,"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/posts\/1130\/revisions\/1139"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/media\/1138"}],"wp:attachment":[{"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/media?parent=1130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/categories?post=1130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/luisrodriguez.pe\/blog\/wp-json\/wp\/v2\/tags?post=1130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}