2012-09-01 62 views
0

我有一個菜單出現在我的所有頁面上。它包含用於傳遞文件名到url的php,如下所示。這是一個片段...用php解析腳本源文件

document.write('<li><a href="somefile.php?folder=<?php echo "_abc"; ?>">abc</a></li>'); 
document.write('<li><a href="somefile.php?folder=<?php echo "_def"; ?>">def</a></li>'); 
document.write('<li><a href="somefile.php?folder=<?php echo "_ghi"; ?>">ghi</a></li>'); 

它包括CSS和那很好。 我已保存的菜單作爲一個單獨的.js文件,並使用...

<script src="js/menucss.js"></script> 

...從我希望它出現在每個頁面加載它。菜單顯示和CSS工作正常 - 但PHP不解析和頁面顯示PHP標記。我究竟做錯了什麼?

在此先感謝。 Neil

+0

我不明白的問題。 –

回答

1

你不應該那樣做。

有一個網頁叫做menu.php的地方保存,其中包括:

<ul> 

    <li><a href="somefile.php?folder=<?php echo "_abc"; ?>">abc</a></li> 
    <li><a href="somefile.php?folder=<?php echo "_def"; ?>">def</a></li> 
    <li><a href="somefile.php?folder=<?php echo "_ghi"; ?>">ghi</a></li> 

</ul> 

然後包括它,在服務器端(的index.php):

<html> 
<head> 
    <title></title> 
</head> 
<body> 
<header> 
    <?php include("main.php"); ?> 
</header> 
</body> 
</html> 

這種方法是遠遠優於:

  • 它不需要額外的請求來獲取數據。
  • 數據加載不會出現閃爍或尷尬的時刻,菜單將顯示爲您直接將其編碼到頁面中。
  • 它快得多。
  • 它不使用JavaScript,客戶可以選擇禁用JavaScript。
+0

現貨。工程100%。謝謝! – cardshark

+0

其實我注意到它在查看時會拋出幾個document.write(「」)。其他一切正常。奇怪的是我已經刪除了它們的所有實例?我已經評論了一切(對不起帽子!),這是不需要的 - 只留下包含聲明,它們仍然出現。有任何想法嗎? – cardshark

+0

我不明白這個問題。當你在PHP中包含一個文件時,你幾乎在做一些接近「從包含文件複製/粘貼代碼到這個文件」的東西,所以就好像你在主頁面中寫了菜單一樣。 –

0

您混淆了服務器端和客戶端。 PHP是關於服務器端和它在服務器上解釋的PHP代碼。 JavaScript是關於客戶端的,而JavaScript在用戶已經獲得html頁面的時候運行,所以當你通過JavaScript在客戶端的html上添加php的時候,它不能運行。

+0

好的,但之前我在每個頁面上都有菜單編碼,php工作正常。通過將菜單移至單獨的文件以保存每次更改時在每個頁面上進行編輯,我已經設法將其分開。是對的嗎。 – cardshark

+0

明白了 - 我的不好! – cardshark

+0

我現在明白了。只是學習PHP - 我以爲我把它搞錯了。把腳本扔進包裏也讓我再次失望! – cardshark

0

從我的理解我認爲你正在試圖在.js文件中運行PHP。
您應該將該代碼包含在PHP文件中。

0

您遇到的問題可能是由於您試圖在.js文件上運行PHP,而您的服務器未配置爲此。

更改文件的擴展名.php及用途:

<script src="js/menucss.php">