Как сделать так, чтобы выбранный язык оставался на следующей странице? - PullRequest
0 голосов
/ 19 апреля 2020

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

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>

</head>

<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type="text/javascript" src="custom.js">
</script>




  <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="test2.php">Click</a>

</body>

</html>

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

}); 

Ответы [ 2 ]

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

Последний ответ

index. php

<!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="custom.js"></script>
  <script type="text/javascript" src="cookie_script.js"></script>
</head>

<body>

  <select name="" id="lang">
    <option <?php if(@$_COOKIE['lang']=="English"){ echo "selected"; }?> value="English">English</option>
    <option <?php if(@$_COOKIE['lang']=="French"){ echo "selected"; }?> value="French">French</option>
    <option <?php if(@$_COOKIE['lang']=="Spanish"){ echo "selected"; }?> value="Spanish">Spanish</option>
  </select>

  <select name="" id="currency">
    <option <?php if(@$_COOKIE['currency']=="USD"){ echo "selected"; }?> value="USD">USD</option>
    <option <?php if(@$_COOKIE['currency']=="EUR"){ echo "selected"; }?> value="EUR">EUR</option>
    <option <?php if(@$_COOKIE['currency']=="MXN"){ echo "selected"; }?> value="MXN">MXN</option>
  </select>

  <a href="test2.php">Click</a>

</body>

</html>

cookie_script. js

$(document).ready(function(){
  $('#lang').on('change', function(){ document.cookie = "lang="+$(this).val()+"; path=/"; });
  $('#currency').on('change', function(){ document.cookie = "currency="+$(this).val()+"; path=/"; });
});

Всегда включать

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
  <script type="text/javascript" src="cookie_script.js"></script>

... на каждой странице

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

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

Согласно этому сообщению: Как получить значения строки запроса в JavaScript? Вы должны использовать URLSearchParams.

Шаг 1 - Получить выбранные значения языка и валюты из URL.

const urlParams = new URLSearchParams(window.location.search);
const language = urlParams.get('lang');
const currency = urlParams.get('currency');

Шаг 2 - Использовать значения для обновления раскрывающегося списка :

$('#lang').val(language);
$('#currency').val(currency);

Если вы не хотите продолжать делать это на каждой странице, вы можете сохранить эти настройки на компьютере клиента ( localStorage ) или на сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...