Как использовать команду cook ie, чтобы сохранить выбранное значение для всех страниц? (Например, валюта, язык) - PullRequest
0 голосов
/ 19 апреля 2020

Допустим, сайт имеет несколько страниц и несколько контентов. Некоторый контент отображается на веб-сайте, и мы используем раскрывающийся список для изменения контента и ссылок. Я создал выпадающий список для выбора валюты и языка, но всякий раз, когда мы переходим со страницы 1. php на страницу 2. php. Значения этих выпадающих меняется. Поэтому всякий раз, когда посетитель меняет выпадающий список с любой страницы. Он должен оставаться таким же, когда он посещает другие страницы.

Например. посетитель, который выбирает французский и евро, поэтому он должен оставаться одинаковым на всех страницах. Он может обновить выпадающий список с любой страницы на всем веб-сайте.

Подобно тому, как многие веб-сайты имеют опцию выбора валюты на своих веб-страницах, она остается неизменной на всем веб-сайте, и мы можем изменить ее на любой странице, а затем эта валюта становится по умолчанию для всех страниц.

Я думаю использовать куки. Посоветуйте, пожалуйста, как это можно сделать.

$(document).ready(function(){
var saveclass = null;

function onChangeHandler() {
  const lang = document.querySelector('#lang').value;
  const currency = document.querySelector('#currency').value;
  var strLink = "https://example.com/index.php?lang="+lang+"&currency="+currency;
  document.querySelector('#theButton').setAttribute('href', strLink);

}

onChangeHandler();

document.querySelector('#lang').addEventListener('change', onChangeHandler);
document.querySelector('#currency').addEventListener('change', onChangeHandler);

}); 
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
  <script type="text/javascript" src="price.js"></script>
</head>

<body>

  <select name="" id="lang">
    <option value="English">English</option>
    <option value="French">French</option>
    <option value="Spanish">Spanish</option>
  </select>

  <select name="" id="currency">
    <option value="USD">USD</option>
    <option value="EUR">EUR</option>
    <option value="MXN">MXN</option>
  </select>

  <a href="" id="theButton">Click</a>
  
    <a href="file2.php">Click</a>

</body>

</html>

1 Ответ

0 голосов
/ 19 апреля 2020

Вы можете использовать хранилище сессий javascript, при загрузке каждой страницы вы проверяете, было ли уже сохранено значение, и если вы его используете. Поскольку хранилище сеансов является ключевым значением, вы можете сохранить язык, валюту и другие нужные вам вещи. Если вы хотите, чтобы данные никогда не истекали, используйте локальное хранилище, которое используется таким же образом.

Сеансовое хранилище https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

Локальное хранилище https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

Пример

$(document).ready(()=>{ 
//get data from the session storage when the page is loaded
 const selectedValue = sessionStorage.getItem('lang');
  //if one value was saved then use it, if not put your default value 
  $("#lang").val(selectedValue !== undefined ? selectedValue:'Default value');
  //when the selected option is changed, it puts the new value in the sessionStorage
  $( "#lang" ).change(function() {
            sessionStorage.setItem('lang', this.value);
        })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...