2011-10-05 113 views
0

我知道$ _SERVER ['REQUEST_URI']在獲取當前頁面的url時起作用,但是它在#網址。我喜歡在最後使用#blah來使頁面滾動到某個點。例如:

index.php#answer 

使用$ _ SERVER [ 'REQUEST_URI']剛剛返回:

index.php 

我怎樣才能使閱讀正文之後的#answer呢?

回答

2

URL散列不會發送到服務器。所以使用PHP或任何其他服務器端語言來檢索它是不可能的。

要實現滾動,請給出要滾動到id="answer"的元素 - 然後瀏覽器會自動跳轉到該元素。如果您想使用JavaScript執行平滑滾動,您可以通過location.hash訪問哈希 - 有一些很好的jQuery插件可用於平滑滾動到指定元素。

+0

謝謝,我該如何讓PHP到頁面上的某個位置?我不知道整個代碼,只是一個想法 –

+1

PHP不能「去某個地方」。它在服務器上運行,因此它只是將HTML發送回瀏覽器。如果你想傳遞數據到PHP腳本,使用GET參數,即'foo.php?whatever = something',然後在你的PHP腳本中使用$ _GET ['whatever']來訪問它們。 – ThiefMaster

0

這不起作用,因爲散列不會被髮送到它用於頁面錨定的服務器。

您只能使用PATH_INFOQUERY_STRINGREQUEST_URI這是前面提到的兩個組合。 QUERY_STRING是URI中可選的?之後的部分。

如果你真的想要的話,你可以從javascript訪問這個散列並通過AJAX發送它。