2011-09-19 100 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', 。我相信有一個更簡單/更好的方法來做到這一點。