【问题标题】:PHP change the website content through language selection [closed]PHP通过语言选择更改网站内容[关闭]
【发布时间】:2015-03-25 01:42:51
【问题描述】:

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

我们如何做到这一点,每当我们刷新页面时,url就像

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

在此先感谢...

【问题讨论】:

    标签: javascript php jquery mysql .htaccess


    【解决方案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;
    }
    

    【讨论】:

    • 感谢您的回复。如果页面超过 25 页,我该怎么办...记住我说的是 CMS 网站。
    • 您可以提取当前页面名称并将其包含在表单中,然后使用 php 在重定向代码中使用它。我将更新 PHP 解决方案的答案。
    • 我忘了提,使用 $_SERVER['PHP_SELF'] 提取页面名称。
    猜你喜欢
    • 2018-03-14
    • 2018-06-04
    • 2012-01-03
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多