Git Product home page Git Product logo

luisrodrigobarbanavarro / form-table-results Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 29 KB

Este repositorio ofrece tres versiones de formularios de validación con tabla de resultados implementados en JavaScript. Incluye una versión básica, una con observaciones detalladas y otra con resaltado de errores por campo.

Home Page: https://luisrodrigobarbanavarro.github.io/form-table-results/form-table-results/index-3.html

CSS 12.84% HTML 50.11% JavaScript 37.05%
bootstrap css html javascript-library

form-table-results's Introduction

Práctica 3 I Formularios Validados Con JavaScript - Parte 2 - Tabla De Resultados 🐈

Información Básica

Nombre: Barba Navarro Luis Rodrigo

Fecha (Creación): 05/10/23

Descripción: Este repositorio presenta tres versiones de formularios de validación de la segunda práctica, con la adición de una tabla de resultados efectuada en JavaScript:

  1. Versión Básica: Implementación simple de validación de datos.
  2. Versión con Observaciones: Muestra mensajes detallados de error debajo de cada campo.
  3. Versión con Resaltado de Errores: Resalta los errores directamente en los campos de texto.

Preguntas

  1. Los arreglos en JavaScript son estructuras de datos que permiten almacenar múltiples valores en una sola variable. Los elementos de un arreglo se indexan numéricamente, comenzando desde 0, y pueden contener cualquier tipo de datos, incluyendo números, cadenas, objetos u otros arreglos.

  1. El almacenamiento del navegador en JavaScript consta de dos tipos principales: sessionStorage y localStorage. Ambos permiten a las aplicaciones web almacenar datos en el lado del cliente. Las ventajas y desventajas son las siguientes:

    • sessionStorage:

      • Ventajas: Los datos se almacenan solo durante la sesión actual del navegador y se eliminan cuando se cierra la pestaña o el navegador. Tiene una capacidad de almacenamiento de alrededor de 5-10 MB por dominio.
      • Desventajas: Los datos no persisten más allá de la sesión actual y están limitados a un solo navegador o ventana.
    • localStorage:

      • Ventajas: Los datos se almacenan de forma persistente en el navegador y están disponibles incluso después de cerrar y volver a abrir el navegador. Tiene una capacidad de almacenamiento de alrededor de 5-10 MB por dominio.
      • Desventajas: Los datos no son compartidos entre diferentes pestañas o ventanas del navegador y pueden llenar el almacenamiento local si se abusa de él.

    Métodos de acceso en JavaScript para sessionStorage y localStorage:

    • Para almacenar datos:

      localStorage.setItem("clave", "valor");
      sessionStorage.setItem("clave", "valor");
    • Para recuperar datos:

      var dato = localStorage.getItem("clave");
      var dato2 = sessionStorage.getItem("clave");
    • Para eliminar datos:

      localStorage.removeItem("clave");
      sessionStorage.removeItem("clave");

  1. JSON (JavaScript Object Notation) es un formato de intercambio de datos ligero y legible por humanos. Se utiliza comúnmente para representar objetos y estructuras de datos en JavaScript y en muchas otras tecnologías. Es un formato de texto que consiste en pares de clave-valor y se utiliza para transmitir datos entre un servidor y un cliente, o para almacenar configuraciones y estructuras de datos.

  1. JSON.parse() se utiliza para convertir una cadena JSON en un objeto JavaScript:

    var stringJSON = '{"nombre": "Rodrigo", "edad": 21}';
    var object = JSON.parse(stringJSON);

    JSON.stringify() se utiliza para convertir un objeto JavaScript en una cadena JSON:

    var object = { nombre: "Rodrigo", edad: 21 };
    var stringJSON = JSON.stringify(object);

  1. window.location.href es una propiedad que se utiliza para obtener o cambiar la URL completa de la página actual en un navegador web:

    var url = window.location.href;

  1. El funcionamiento de script-results se basa en tres principales partes: la primera está encargada de mostrar los datos del almacenamiento local en la tabla, la segunda tiene como finalidad eliminar todos los datos del almacenamiento local, y la tercera se encarga de eliminar un dato específico de una fila del almacenamiento local.

    const tablaResultados = document.getElementById("tablaResultados");
    const envios = JSON.parse(localStorage.getItem("envios")) || [];
    envios.forEach((envio) => {
         const fila = document.createElement("tr");
         fila.innerHTML = `
         <td>${envio.id}</td>
         <td>${envio.nombre}</td>
         <td>${envio.apellidos}</td>
         <td>${envio.telefono}</td>
         <td>${envio.correo}</td>
         <td>${envio.edad}</td>
         <td>${envio.fechaNacimiento}</td>
         <td><button type="button" class="btn btn-danger btn-eliminar">Eliminar</button></td>
    `;
      tablaResultados.appendChild(fila);
    });

    En el bloque de código anterior, se emplea exclusivamente para presentar los datos en la tabla de la página de resultados. Inicialmente, se obtiene una referencia al elemento HTML de la tabla identificado por el ID "tablaResultados". Posteriormente, se recopilan y transforman los datos almacenados en el almacenamiento local bajo la clave "envios" en un arreglo de objetos. Finalmente, se itera a través de estos objetos y se generan filas de tabla HTML que contienen sus respectivas propiedades, las cuales se añaden a la tabla "tablaResultados".

    const btnEliminarCompleto = document.querySelector('#btn-eliminar');
     btnEliminarCompleto.addEventListener('click', () => {
         localStorage.clear();
         const tabla = document.querySelector('.table-custom');
         const filas = tabla.querySelectorAll('tbody tr');
         filas.forEach(fila => fila.remove());
     });

    Este segundo bloque de código, se encarga de eliminar completamente los datos almacenados en el almacenamiento local y todas las filas de una tabla en la página web cuando se hace clic en un botón. Primero, se obtiene una referencia al botón con el ID "btn-eliminar" y se añade un evento de escucha para cuando se haga clic en él. Cuando se activa este evento, se borran todos los datos en el almacenamiento local utilizando localStorage.clear(), se localiza la tabla en la página por su clase "table-custom", se seleccionan todas las filas dentro de su cuerpo y se eliminan una por una, vaciando así la tabla y
    borrando todos los datos almacenados de manera visual y en el almacenamiento local.

    const btnEliminarFila = document.querySelectorAll('.btn-eliminar');
     btnEliminarFila.forEach(btn => {
         btn.addEventListener('click', () => {
             const fila = btn.closest('tr');
             const indice = fila.rowIndex - 1;
    
             const envios = JSON.parse(localStorage.getItem('envios')) || [];
    
             envios.splice(indice, 1);
             localStorage.setItem('envios', JSON.stringify(envios));
    
             fila.remove();
         });
     });

    Este último bloque de código permite la eliminación de filas de una tabla en la página web cuando se hace clic en un botón "eliminar" asociado a cada fila. Para cada botón de eliminación, se agrega un evento de clic que identifica la fila correspondiente, calcula su índice en la tabla, elimina el objeto relacionado en los datos almacenados en el almacenamiento local, actualiza el almacenamiento local con los nuevos datos y, finalmente, elimina visualmente la fila de la tabla en la página web.


Recursos ✨

form-table-results's People

Contributors

rodrigobarbaedu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.