我正在为我的一个客户做一个基于PHP,MySQL CMS的网站。目前我们有三种语言英语,法语和佛兰德语。
每当我们刷新页面时,我们怎样才能实现这一点,如
About.php - > http://www.url.com/about(英语)
About.php - > http://www.url.com/fr/about(法语)
我使用javascript进行语言选择,因为我对php没有足够的知识。
<div class="lang_container">
<a href="javascript:void(0);"><img src="<?php echo SITE_PATH_COMMON; ?>images/lan-en.gif" alt="">ENG</a>
<ul>
<li><a href="javascript:void(0);"><img src="<?php echo SITE_PATH_COMMON; ?>images/lan-en.gif" alt="">ENG</a></li>
<li><a href="javascript:void(0);"><img src="<?php echo SITE_PATH_COMMON; ?>images/lan-fr.gif" alt="">FRE</a></li>
<li><a href="javascript:void(0);"><img src="<?php echo SITE_PATH_COMMON; ?>images/lan-fl.gif" alt="">FLE</a></li>
</ul>
</div>
$(".lang_container ul li a").click(function() {
var text = $(this).html();
var text1 = $(this).text();
$(".lang_container > a").html(text);
$(".lang_container ul").hide();
updateQuery(text1);
});
function updateQuery(e)
{
dataString = e;
var siteStatus = $('#siteStatus').val();
var ourLocation = window.location.pathname.split('/').pop();
str = "";
if ((siteStatus=='1') && (dataString=="Eng")) {
str = "";
}
else if ((siteStatus=='1') && (dataString=="Fre")) {
str = "fr/";
}
else if ((siteStatus=='1') && (dataString=="Fle")) {
str = "fl/";
}
window.location.href="http://192.168.1.16:8066/"+str+ourLocation;
}
提前致谢...
答案 0 :(得分:1)
您只需要处理页面重定向的代码,对吗?
执行此操作的一种方法是使用下拉菜单上的javascript执行重定向到新位置。
<?php
$page = array_pop(explode('/', $_SERVER['PHP_SELF']));
?>
<input type="hidden" id="page" value="<?php echo $page; ?>" />
<select id="lang">
<option value="en">English</option>
<option value="fr">Francais</option>
</select>
$('#lang').on('change',function(e) {
switch($(this).val()) {
case 'en':
window.location = 'http://www.url.com/'+$('#page').val();
break;
case 'fr':
window.location = 'http://www.url.com/fr/'+$('#page').val();
break;
}
});
如果javascript不是一个选项,并且您需要一个仅限PHP的解决方案(这意味着您的下拉列表中有一个提交按钮),它可能如下所示:
<?php
$page = array_pop(explode('/', $_SERVER['PHP_SELF']));
?>
<form action="langredirect.php" action="post">
<input type="hidden" name="page" value="<?php echo $page; ?>" />
<select name="lang">
<option value="en">English</option>
<option value="fr">Francais</option>
</select>
<input type="submit" value="GO" />
</form>
然后在langredirect.php中你可以做一个重定向:
switch($_POST['lang']) {
case 'en':
header('Location: http://www.url.com/'.$_POST['page']);
exit();
break;
case 'fr':
header('Location: http://www.url.com/fr/'.$_POST['page']);
exit();
break;
}