2013-05-11 145 views
-2

有沒有辦法將javascript值傳遞給php?javascript值傳遞給php

if(echo '<script>window.location.href="/mysite"</script>' === "/mysite"){ 
    $myVal = 1; 

}else{ 
    $myVal = 2; 
} 

這種方式似乎不起作用

+0

你能告訴你想要發生什麼嗎?現在你只是比較兩個字符串,這沒有任何意義。 – 2013-05-11 20:36:41

+0

使用一個get變量,'window.location.href =「/?site = mysite」'然後在PHP上,你可以測試'$ _GET ['site'] ==「mysite」'。 – 2013-05-11 20:37:03

+0

你試圖確定當前文件的位置? – 2013-05-11 20:46:30

回答

2

不,你不能這樣做。如果你想要的東西最好,最簡單的方法是使用jQuery ajax函數http://api.jquery.com/jQuery.ajax/這將發送請求到服務器與你想給腳本的數據(最簡單的方法 - 使其他.php文件?),如果你想要返回的東西,它會在ajax中返回數據。閱讀提供的鏈接,你應該很好去。

如果你想知道你目前在哪個網站(如在例子中),你可以使用$ _SERVER數組並獲取你想要的變量。列表在這裏:http://php.net/manual/en/reserved.variables.server.php

0

PHP代碼執行服務器端。 JavaScript執行客戶端。除非您在PHP中創建一個從JavaScript調用的Web服務,否則兩者無法溝通。不幸的是,這不會解決你的問題。

如果你想設置基於請求的URL值,你可以嘗試:

if($_SERVER['REQUEST_URL'] === "/mysite"){ 
    $myVal = 1; 
} else { 
    $myVal = 2; 
} 
+0

謝謝,是的,我用這種方式。只是想知道我是否可以讓他們溝通。 – olo 2013-05-11 21:22:37

0

我在您的文章中看到的代碼表明你完全誤解了PHP和JavaScript的性質。

通過AJAX請求發送JS var,然後在一些服務器端腳本中使用它。

0

php首先在服務器端執行。

然後javascript在客戶端執行。所以這是在php被渲染之後。

將javascript值發送到php的唯一方法是使用ajax發送異步調用。