2011-09-19 130 views
0

我制作了一个带有完整背景图片的网站。 用户在第一个屏幕上选择是否他/她想用英文或德文查看网站。 然后,该网站将重新加载为用于英语的index.php(英语为默认)或用于德语的indexG.php。AJAX获取索引的URL

选择语言后,我实现了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。

+0

您从不定义'$ currentPage' ...此外,您可以为'$ .ajax'数据传递一个对象:'{q:str}' – ThiefMaster

+0

@ThiefMaster谢谢,在测试时删除了$ currentPage。 q已经代表将会填充getlist.php的电影类别。我可以通过标记的onClick为$ .ajax数据传递'q'和'语言'吗? – ize

回答

0

语言的事情我做这种方式。我从来不说

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

我只在index.php文件顶部做

$ LANG =“这是什么都”,那么你总是使用这个$ lang变量,这个变量在顶部声明后随处可见。它去

something.php?语言= $ LANG或 其中language = $语言或 或./articles/$language/等等等等

,我从来没有存储在脚本中这一切都以一个字存储在单独的文件中的类:

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中加载它。

0

我最终复制了function showMiddle()并将其复制为showMiddle_G()。菜单项在英文菜单中调用第一个功能并通过data: 'q=' + str + '&language=english', 。德国菜单中的菜单项调用showMiddle_G()并通过data: 'q=' + str + '&language=deutsch', 。我相信有一个更简单/更好的方法来做到这一点。