PHP通过语言选择更改网站内容

时间:2015-03-25 01:42:51

标签: javascript php jquery mysql .htaccess

我正在为我的一个客户做一个基于PHP,MySQL CMS的网站。目前我们有三种语言英语,法语和佛兰德语。

每当我们刷新页面时,我们怎样才能实现这一点,如

About.php - > http://www.url.com/about(英语)

About.php - > http://www.url.com/fr/about(法语)

我使用javascript进行语言选择,因为我对php没有足够的知识。

的header.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>

使用Javascript:

$(".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;
}

提前致谢...

1 个答案:

答案 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;
}