2012-03-08 241 views
6

可能重複:
How to pass a variable/data from javascript to php and vice versa?將javascript變量傳遞給php代碼?

我有PHP和JavaScript代碼的文件。我想設置一個php變量作爲一個JavaScript函數的結果,它將一個php變量作爲參數。例如:

$parameter = "this is a php variable"; 
$phpVar = echo "foo(" . parameter . ");"; 

我知道你不能做一個「= echo」,有沒有另一種方法可以做到這一點?

感謝

+1

發送用ajax,或使用形式...你的情況下依靠太,你想要做什麼.. – StiveKnx 2012-03-08 19:29:28

回答

12

由於JavaScript運行在客戶端並且PHP在服務器端執行,所以不能直接執行此操作。

您需要先執行JavaScript,然後通過FORM或AJAX調用將結果發送到服務器。

這裏有可能是什麼樣子:

PHP

$parameter = "this is a php variable"; 
echo "var myval = foo(" . parameter . ");"; 

的JavaScript

var myval = foo("this is a php variable"); // generated by PHP 

$.ajax({ 
    type: 'POST', 
    url: 'yourphpfile.php', 
    data: {'variable': myval}, 
}); 

接收PHP(yourphpfile.php)

$myval = $_POST['variable']; 
// do something 
+0

接收的PHP代碼是由yourphpfile.php指定的文件。它可以是獨立的,也可以是原始PHP文件中if塊的一部分。 – 2012-03-08 19:39:58

+0

雄辯且容易做到。 – Jodo1992 2017-04-24 04:32:10

1

你必須做出GETPOST要求從JavaScript腳本。

3

PHP代碼在響應被髮送之前在服務器上運行; JavaScript是在瀏覽器後運行的。您無法從JavaScript設置PHP變量,因爲瀏覽器中沒有PHP變量,其中運行JavaScript。您必須使用JavaScript的AJAX請求到PHP腳本,該腳本存儲您想要獲取的任何信息。

+2

誰downvoted,這將是更有益的解釋你發現令人反感,尤其是因爲所有在我之後回答的人似乎都在說我做過的同樣的事情。我有什麼重要的細微差錯?你不喜歡以高品質地面肉類命名的人嗎? – Chuck 2012-03-08 19:39:51

0

你不能傳遞一個js變量到php 代碼
PHP恰好在服務器上運行,遠離客戶端,在這裏運行js。

因此,您只能使用js或常規超鏈接調用php腳本。

2

試試這個:

var a = "Result: "+ <?php echo json_encode($parameter); ?>;