我正在使用此代码更改按钮的超链接,现在我希望如果用户选择了一种语言,例如法语,则在下一页打开时会自动选择该语言。如果我从page1.php转到page2.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+"¤cy="+currency;
document.querySelector('#theButton').setAttribute('href', strLink);
}
onChangeHandler();
document.querySelector('#lang').addEventListener('change', onChangeHandler);
document.querySelector('#currency').addEventListener('change', onChangeHandler);
});
最新答案
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>
。。。每页
在下一页上,您需要读取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(或服务器中。