Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите исправить код, который запоминает в куках и выводит на след странице данные (https://javascript.ru/forum/misc/78388-pomogite-ispravit-kod-kotoryjj-zapominaet-v-kukakh-i-vyvodit-na-sled-stranice-dannye.html)

Lefseq 06.09.2019 12:07

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

Но данный код выводит данные из инпутов имя (name) и фамилия (family-name) в одну строчку, а как сделать, чтобы выводились на странице page2.html по отдельности, (например <span class="name"></span> и <span class="family-name"></span>, чтобы можно было поставить их в разные части страницы. Как это сделать? Помогите пожалуйста.

<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();
    })();

laimas 06.09.2019 16:34

Цитата:

Сообщение от Lefseq
Имеется код, который запоминает в куках браузера

Это хранение не в куках, а в локальном хранилище.

Цитата:

Сообщение от Lefseq
чтобы выводились на странице page2.html по отдельности

В смысле по отдельности, <span class="name">имя</span> <span class="family-name">фамилия</span>? Можно строку хранящуюся в локальном хранилище разбивать на две по пробелу, затем вставляя в соответствующий span. Можно хранить в локальном хранилище массив/объект имя/фамилия, соответственно каждый его элемент помещать в свой span. А уж в любом месте страницы, так это где их поместить там и будет отображение.


Часовой пояс GMT +3, время: 09:38.