AJAX获取索引URL

时间:2011-09-19 11:22:36

标签: php javascript ajax

我创建了一个带有完整背景图片的网站。 用户在第一屏幕上选择他/她是否想要用英语或德语查看该站点。 然后该站点将重新加载为index.php(英语为默认值)或indexG.php(德语)。

选择语言后,我实现了ajax,以便在每次点击链接时不重新加载背景。

第一页确定菜单显示的语言:

<?php if ($currentPage == 'index.php') 
        {
            include ('includes/navE.inc.php');
        }
        else if ($currentPage == 'indexG.php')
        {
            include ('includes/navG.inc.php');
        }
    ?>

每个菜单项都会调用一个函数。以下是英语菜单中的示例:

            <li><a href="#" class="nav" id="navitem2" onclick="showMiddle(2);">menu item</a></li>

和函数showMiddle(str):

function showMiddle(str)
{


$.ajax({
    type: 'GET',
    url: 'getlist.php',
    data: 'q=' + str,
    success: function(msg){
        //alert("data retrieved: " + msg);
        $('#middle').css({opacity:0}).html(msg).delay(550).fadeTo(1500,1);
    }
});
}

现在,getlist.php包含另一个菜单(视频标题),以及一个用作所选视频容器的div。

我希望getlist.php能够判断是否选择了英语或德语,然后从数据库中显示相应的标题。

我不确定是否应该使用getlist.php中的变量或通过将参数传递给getlist.php来执行此操作。 我为了获取URL而尝试做的任何事情都返回“getlist.php”(这是有意义的)而不是index.php或indexG.php。

2 个答案:

答案 0 :(得分:0)

语言我这样做的方式..我从不说

indexG.php or 
something.php?language=en or 
where language = 'english' or
or ./articles/english/ or whatever

我只在index.php的顶部做那个

$ lang ='它是什么'然后你总是使用这个$ lang变量,这个变量在顶部声明后随处可见。它去了

something.php?language = $ lang or 其中language = $ language或 或./articles/$language/ etc等

我从不在脚本中存储单个单词,而是存储在单独文件中的类:

enter image description here 这个类只包含文本,例如:

<?PHP
class txtcomcateg 
{
/****************************PAGE TITLES************************************/
    public static $comcateg_formtitle="Φόρμα διαχείρισης κατηγοριών.."; 
    public static $comcateg_name="Όνομα κατηγορίας..";

然后我只是使用它来调用类似的静态类:

$login_tpl->set('uname',txtStandard::$uname);

对我来说这是一件微不足道的事情,我从不打扰它,当我想要更改我知道它在哪里的文本而不必在任何代码中搜索。我只是给静态类成员提供了令人感动的名字,所以我知道它包含的内容。语言可以存储在cookie或会话中,因此您不必将其加载到url中。

答案 1 :(得分:0)

我最终复制了function showMiddle()并调用了副本showMiddle_G()。英语菜单中的菜单项调用第一个函数并传递data: 'q=' + str + '&language=english', 。德语菜单中的菜单项会调用showMiddle_G()并传递data: 'q=' + str + '&language=deutsch', 。我确信有一种更简单/更好的方法可以做到这一点。