2017-03-10 24 views
0

例如: 我在JavaScript聲明的網址:這是可能的解析與#在PHP中的網址?

<script> 
    window.location.href = "signup.php#year=" + myyear; 
</script> 

而在PHP中,我試圖讓#year:

<?php 
    if(isset($_GET['year'])){ 
    $year = $_GET['year']; 
} 
?> 

預先感謝您!

+2

URL中的哈希不是GET變量。改用'?year = myyear'。 – evolutionxbox

+2

[我可以在服務器端應用程序(PHP,Ruby,Python等)上讀取URL的哈希部分嗎?](http://stackoverflow.com/questions/940905/can-read -hash-url-on-my-server-side-application-php-ruby) – evolutionxbox

+0

如果你不想重定向到另一個頁面然後使用ajax –

回答

0

我們用簡單的術語?或/獲得變量,而不是#

-1

如果你想使用$_GET那麼你應該使用?而不是#。這個?符號是GET的指示符,而不是#。

所以,簡單的URL結構變更爲:

<script> 
    window.location.href = "signup.php?year=" + myyear; 
</script> 

,然後,當你已經做了,搶與獲得的價值。

<?php 
    if(isset($_GET['year'])){ 
    $year = $_GET['year']; 
} 
?> 

如果要使用更多參數,請使用&符號將它們分開。你可以添加儘可能多的,你只需要按照'& key1 = value1 & key2 = value2?結構,只要你願意,你可以擴展它。例如:

<script> 
    window.location.href = "signup.php?year=" + myyear&month=5; 
</script> 

現在,你可以這樣做:

<?php 
    if(isset($_GET['year'])){ 
    $year = $_GET['year']; 
    $month = $_GET['month']; // Would assign 5 to month. 
} 
?> 
+0

如果我使用「?」 :window.location.href =「signup.php?然後是加載所有的頁面,一切都消失了,我創建了javascript的標籤,我想在URL中發送標籤的名稱,並在PHP中。我想在同一頁面工作,而不直接我到另一個頁面。 –

+0

然後,你將不得不使用JavaScript,PHP在服務器端運行,在頁面加載後你不能「發送」一個值到PHP,這是不可能的,因爲PHP代碼在頁面顯示給用戶之前執行所以如果你想在沒有任何重新加載的情況下工作,那麼在這個任務中使用javascript是一種很好的將數據發送到你的PHP腳本而不重新加載頁面的方法,就是'AJAX' - 簡單的谷歌代碼就可以找到很多例子 – Twinfriends

+0

會如果威爾遜先生能解釋他爲什麼在這裏低估了,那該多好? – Twinfriends

0

不使用#標誌

<script> 
    var myyear; 
    window.location.href = "signup.php?year=" + myyear; 
</script> 

,你可以得到

<?php 
    if(isset($_GET['year'])){ 
    $year = $_GET['year']; 
} 
?> 
0

其實你只是缺少一個東西在你的上。

window.location.href = "signup.php?year=" + myyear 

這段代碼的結果與* signup.php?年= 2017年

網址可以使用$_GET['year']得到它。

0

轉換的URL字符串的PHP URL對象與該功能parse_url和解除引用它的「片段」鍵是這樣的:

$url=parse_url("www.example.com/example/?shareURL&adherentID=ascd#123"); 
echo $url["fragment"]; 

上面的代碼返回123。這裏的工作示例 - http://codepad.org/r8icljcW