我想切换页面的语言。这非常有效:
<?php
session_start();
header('Cache-control: private'); // IE 6 FIX
if(isSet($_GET['lang'])) {
$lang = $_GET['lang'];
// register the session and set the cookie
$_SESSION['lang'] = $lang;
setcookie("lang", $lang, time() + (3600 * 24 * 30));
} else if(isSet($_SESSION['lang'])) {
$lang = $_SESSION['lang'];
} else if(isSet($_COOKIE['lang'])) {
$lang = $_COOKIE['lang'];
} else {
$lang = 'en';
}
switch ($lang) {
case 'en':
$lang_file = 'lang.en.php';
break;
case 'de':
$lang_file = 'lang.de.php';
break;
default:
$lang_file = 'lang.de.php';
}
include_once 'languages/' . $lang_file;
?>
如果我点击例如&#34;英语&#34; ...
<a href="index.php?lang=en">English</a>
<a href="index.php?lang=de">German</a>
...我的英文页面版本加载如下:
www.mypage.php?lang=en
我的问题是:当我向下滚动页面然后点击其他语言时,页面会加载到顶部位置。但我希望页面保持滚动位置。 (实际上,当我只刷新页面时,我的页面一直保持在滚动位置。)
答案 0 :(得分:1)
您可以在具有此唯一ID的范围内使用英语和德语
<a href="index.php?lang=en#unique_id_for_english"><span id="unique_id_for_english">English<span></a>
<a href="index.php?lang=de#unique_id_for_german"><span id="unique_id_for_german">German<span></a>
答案 1 :(得分:-1)
你必须使用
event.preventDefault();
在你的标签上,这样就会停止默认重新加载,导致页面刷新到顶部。
例如
$('a').click(function () {
event.preventDefault();
});