Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

HTML , JavaCript , чего не хватает в коде , что я сделал не так?

эти коды позволяют отправлять данные из формы на вторую страницу , по идее всё должно работать , потому что мне эти коды дали очень умные люди , но почему то данные не отправляются , я посмотрел в коде элемента и там ошибки Uncaught TypeError: Cannot read properties of null (reading 'reduce') и такая же ошибка на втором коде TypeError: Cannot read properties of null (reading 'appendChild') . Я думаю что я забыл просто что то написать в коде , может id где то забыл или ещё что то . Вот весь код
Первый код:
forming.html

1234567891011121314151617181920212223242526272829
 <fieldset > 
        <form action="myforming.html"> 
        <legend>Sign Up Form</legend> 
        <label>Email:<br /> 
        <input type="text" name="email" id="email"/></label><br /> 
        <label>Password<br /> 
        <input type="text" name="password" id="password"/></label>
 
        <label>Mobile:<br /> 
        <input type="text" name="mobile" id="mobile"/></label><br /> 
        <label>Telephone:<br /> 
        <input type="text" name="telephone" id="telephone"/></label>
  
        <input type="submit" value="Submit" onclick="getData()"> 
        </form> 
    </fieldset> 
 
    <script> 
    // Где myForm это id формы 
    const formElement = document.getElementById('myForm'); 
 
function getData() { 
  const form = new FormData(formElement); 
  const addedData = {}; 
  for (let [key, value] of form) addedData[key] = value; 
  listForm.push(addedData); 
  localStorage.setItem("list", JSON.stringify(listForm)); 
}; 
   </script> 

myforming.html

12345678910111213141516171819202122232425262728
 <body> 
  
        The Email is equal to: <span id="data"> Email</span>
  
        The Password is equal to <span id="data1"> Password</span>
 
        The Mobile is equal to <span id="data2"> Mobile</span>
 
        The Telephone is equal to <span id="data3"> Telephone</span>
 
 
  
        <script> 
   // Вытаскиваем значения из хранилища 
const list = JSON.parse(localStorage.getItem('list')); 
// Собираем все значения в строку для отрисовки и записываем в нужный контейнер 
document.getElementById('cont').innerHTML = list.reduce((acc, it) => { 
  return acc += `The Email is equal to: <span id="data">${it.email}</span>
 
    The Password is equal to <span id="data1">${it.password}</span>
 
    The Mobile is equal to <span id="data2">${it.mobile}</span>
 
    The Telephone is equal to <span id="data3">${it.telephone}</span>
` 
}, ''); 
        </script> 
</body> 
Дополнен

Скрипт 2 кода
forming.html
function getData() {
//getting the values
var email = document.getElementById("email").value;
var password= document.getElementById("password").value;
var telephone= document.getElementById("telephone").value;
var mobile= document.getElementById("mobile").value;
//saving the values in local storage
var users = JSON.parse(localStorage.getItem('users')) || [];
users.push({ email, password, telephone, mobile });
localStorage.setItem("users", JSON.stringify(users));
}
myforming.html
window.onload = function() {
var users = JSON.parse(localStorage.getItem('users')) || [];
var dataField = document.getElementById('data-field');

users.forEach(function(user) {
var paragraph = document.createElement('p');
paragraph.innerHTML = 'Email: ' + user.email + ', password: ' + user.password+ ', telephone: ' + user.telephone + ', mobile: '+user.mobile;
dataField.appendChild(paragraph);
});
}

По дате
По рейтингу
Аватар пользователя
Профи

ты нарушил первое правило офтальмолога ты забыл приписать запятую в пятой строке

Аватар пользователя
Высший разум

// Где myForm это id формы

Ну и где у тебя то id прописано?

А localStorage от таких "разовых" данных неплохо было бы чистить

Аватар пользователя
Мыслитель

В таком примере, новая страница откроется с параметрами запроса после "myforming.html?email=...". И весь этот код можно отремонтировать одной кнопкой "Delete".
А на второй странице получить все данные одной строкой:

1
 const params = (new URL(document.location)).searchParams 

или "document.baseURI"

Аватар пользователя
Искусственный Интеллект

Если есть решимость шифрования персональных данных из формы, то их можно передать в URL. Шифрование это отдельная задача

например:
файл отправки

123456789101112131415161718192021
  
 
<h1>Первая форма</h1> 
 
<form id="myForm" action="form2.html"> 
    <!-- Ваша форма --> 
    <input type="text" name="email" id="email"/> 
    <input type="text" name="password" id="password"/> 
    <!-- Другие поля --> 
    <button type="submit">Submit</button> 
</form> 
 
<script> 
    document.getElementById('myForm').addEventListener('submit', function(event) { 
        event.preventDefault();  
        const form = new FormData(this);  
        const queryString = new URLSearchParams(form).toString(); // Преобразовать данные в строку запроса 
        window.location.href = 'form2.html?' + queryString; // Перенаправить пользователя на form2.html с данными в URL 
    }); 
</script> 
 

файл приемки

123456789101112131415161718192021
  
<h1>Вторая форма</h1> 
 
<form id="myForm"> 
    <!-- Ваши поля формы --> 
    <input type="text" name="email" id="email"/> 
    <input type="text" name="password" id="password"/> 
    <!-- Другие поля --> 
</form> 
 
<script> 
    const urlParams = new URLSearchParams(window.location.search);  
    const email = urlParams.get('email');  
    const password = urlParams.get('password'); 
 
    // Заполнить поля формы значениями из параметров запроса 
    document.getElementById('email').value = email; 
    document.getElementById('password').value = password; 
    // Заполнить другие поля формы, если они есть 
</script> 
 
Аватар пользователя
Мудрец

можно передавать значения в скрытые полях в формы.localStorage-не самая лучшая практика