2014-07-04 94 views
2

在擴展名爲.html的頁面中,通常不能執行PHP命令和函數。所以我問是否有任何方法。智能SE用戶提出了兩種不同的方法:讓服務器將HTML解析爲PHP,或者使用Ajax技術。如何將HTML腳本作爲HTML頁面加載調用?

我追溯地改變了一個網站,有很多的語言翻譯坐在子目錄。每個子目錄都有自己的主頁,其擴展名爲.html。每個主頁都有許多鏈接,其中許多鏈接到.PHP腳本。我現在希望所有這些衛星腳本知道哪個主頁(即哪個語言版本)稱它們。我有一組要在腳本中初始化的變量,每種語言使用一種版本,每個子目錄使用一種版本。因此,例如在/ language/spanish中,我們找到init_spanish.php等其他語言。現在,如果我是從新創建這個網站,我的索引頁將是一個index.php頁面,並且它將包含相關語言文件。我可以將index.html文件重命名爲一個.php文件,但是這會產生很多破碎的鏈接,以及與搜索引擎優化相關的因素混亂,我不想編輯自己的.htaccess文件試圖解釋什麼已經移動。

在理想的世界中,我可以簡單地添加一個javascript OnLoad事件,告訴它調用外部init_.php文件,該文件的方式沒有輸出,但是初始化了一些_SESSION變量。有沒有辦法做到這一點,而無需將頁面的擴展名從.html改爲.php?任何Javascript大師都知道需要什麼符文才能實現這樣的目標?

+1

是的!你有什麼嘗試? – putvande

+2

在一個理想的世界裏......你會用CMS來完成這種任務。 – smartmeta

+0

你可以用Ajax調用你的PHP腳本,讓它設置你的SESSION變量。這不需要頁面刷新或重新加載。 – Husman

回答

3

這裏是一個jQuery例如:

$(document).ready(function(){ 
    $.ajax({ 
    type: "POST", 
    url: "path/to/your/init_.php", 
    data: { language: "EN", someothervariable: "someOtherValue" } 
    }) 
}); 

值將是$ _POST數組中,因此要獲得例如語言值,你只需檢索它在你的PHP文件是這樣的:$_POST['language']

+0

謝謝jme!這正是我所希望的。事實上它更進一步;似乎我可以從這裏爲PHP設置變量,並且調用一個預先規定的文件。非常感謝你的啓發! – Frankie

+0

進行了編輯。在我看來,加載窗口會在加載jQuery之前發生。 – jme11