Помогите исправить код, который запоминает в куках и выводит на след странице данные пользователя

D
На сайте с 01.09.2015
Offline
56
367

Здравствуйте. Имеется код, который запоминает в куках браузера введенные пользователем имя и фамилию. Затем перенаправляет на страницу (page2.html), где выводит указанные пользователем имя и фамилию.

Но нужно кое что исправить. Помогите пожалуйста.

1. Нужно убрать на страницах кнопку/функцию "Забудь обо мне!"

2. Надо чтобы введенные пользователем имя (name) и фамилия (family-name) выводились на странице page2.html по отдельности, чтобы можно было поставить их в разные части страницы.


<section id="user-greeting">
<form>
<label>
Имя
<input type="text" autocomplete="name" name="name" required>
</label>
<label>
Фамилия
<input type="text" autocomplete="family-name" name="family-name" required>
</label>
<button onclick="location.href='https://site.ru/page2.html'">Запомнить</button>
</form>
<section>
Привет, <span class="name"></span>, добро пожаловать на сайт!
<button id="user-greeting-forget-button">Забудь обо мне!</button>
</section>
</section>


(function main() {
var form = document.querySelector("#user-greeting > form");
var section = document.querySelector("#user-greeting > section");

function changeView() {
if ("name" in localStorage) {
form.style.display = "none";
section.style.display = "";
document.querySelector("#user-greeting .name").textContent = localStorage.name;
} else {
section.style.display = "none";
form.style.display = "";
}
}

form.addEventListener("submit", function(event) {
event.preventDefault();
var data = new FormData(form);
localStorage.name = [data.get("name"), data.get("family-name")].join(" ");
changeView();
});

document.getElementById("user-greeting-forget-button").addEventListener("click", function() {
delete localStorage.name;
changeView();
});

changeView();
})();
lonelywoolf
На сайте с 23.12.2013
Offline
151
#1
<button id="user-greeting-forget-button">Забудь обо мне!</button>
document.getElementById("user-greeting-forget-button").addEventListener("click", function() {
delete localStorage.name;
changeView();
});

??

десять букв.

Платный и бесплатный хостинг с защитой от DDoS (http://aquinas.su)
IL
На сайте с 20.04.2007
Offline
412
#2
Digistive:
1. Нужно убрать на страницах кнопку/функцию "Забудь обо мне!"

КО. Удалить код с кнопкой.. 😂

Digistive:
<button id="user-greeting-forget-button">Забудь обо мне!</button>

(и туда же функцию с "user-greeting-forget-button")

Digistive:
Надо чтобы введенные пользователем имя (name) и фамилия (family-name) выводились на странице page2.html по отдельности,

Это невозможно же.. 😂

ME
На сайте с 03.07.2017
Offline
66
#3
Digistive:
куках браузера...
localStorage.name = [data.get("name"), data.get("family-name")].join(" ");

Вы серьезно? localStorage: где тут написано cookie?

По сабжу - вы сайтом ошиблись. Вам на фриланс нужно.

D
На сайте с 01.09.2015
Offline
56
#4
lonelywoolf:
??


десять букв.

Что? Какие 10 букв?

---------- Добавлено 06.09.2019 в 10:32 ----------

ivan-lev:
КО. Удалить код с кнопкой.. 😂

(и туда же функцию с "user-greeting-forget-button")

Это невозможно же.. 😂

В том то и дело, что если просто убрать кнопку, данные не выводятся. Не знаю как это связано. но вот так

SV
На сайте с 03.11.2008
Offline
1395
#5
Digistive:
Что? Какие 10 букв?

Ограничение форума - не даёт написать сообщение менее 10 букв. Выше по тексту был предложен код.

lonelywoolf, для вставки кода нужно использовать не цитату, а ббкод [code], тогда будет всё ОК ;)

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Топики помощи с ⓌordPress (https://searchengines.guru/ru/forum/1032910 ) и основы безопасности сайтов ( https://searchengines.guru/ru/forum/774117 ). *** Помощь\консультации в топиках форума - БЕСПЛАТНО. Платные услуги ( https://wp.me/P3YHjQ-3 ) - с бюджетом от 150$ ***
D
На сайте с 01.09.2015
Offline
56
#6
Digistive:
1. Нужно убрать на страницах кнопку/функцию "Забудь обо мне!"

С этим разобрался.

Но вот как чтобы введенные пользователем имя (name) и фамилия (family-name) выводились на странице page2.html по отдельности, чтобы можно было поставить их в разные части страницы?

Gerga
На сайте с 02.08.2015
Offline
89
#7
Digistive:
Но вот как чтобы введенные пользователем имя (name) и фамилия (family-name) выводились на странице page2.html по отдельности, чтобы можно было поставить их в разные части страницы?

В localStorage эти значения объединяются в одну строку из-за .join(" "). Тут 2 варианта:

1. Разбить с помощью .split(" "), но могут быть имена и фамилии состоящие из нескольких слов.

2. Записывать эти значения по отдельности и затем выводить где нужно


localStorage.name = data.get("name");
localStorage.lastname = data.get("family-name");

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий