2010-06-12 248 views

回答

2

PHP和JavaScript不能直接混合使用。您使用PHP服務器端來生成併發送JavaScript到客戶端。 JavaScript執行客戶端,並且只能通過AJAX調用與服務器上的PHP代碼進行通信。這可以通過使用像jQuery這樣的AJAX庫來大幅度簡化。

2

您必須記住,您的PHP代碼在服務器上進行評估,而JavaScript(通常)在瀏覽器中運行。評估發生在不同時間,不同地點。因此,您不能從PHP調用JavaScript函數(或變量),因爲您無法調用另一臺計算機上存在的函數。

您可能需要檢查Ajax是否適合您的問題。

3
<script> 
    var foo = <?php echo $foo; ?>; 
    // or, if foo is a string; 
    var foo = '<?php echo addslashes($foo); ?>'; 
    // for anything more complex, you'll need to use json_encode, if available in your version of PHP 
    var foo = <?php echo json_encode($foo); ?>; 
</script> 

請注意,你只能這樣做。不要指望你在javascript中做出的任何更改都會傳遞給PHP。

1

一般來說,你不能。 PHP是服務器端,Javascript是客戶端(由瀏覽器處理)。

例外是使用AJAX,它允許您訪問PHP頁面,然後執行所需的操作。

+1

事實上,AJAX並不例外。 – 2010-06-12 08:18:33

1

您可以使用JSON來達到這個目的,它很適合從PHP發送大數組到Javascript。我們需要在PHP腳本中回顯JavaScript代碼,或者我們可以使用Ajax代替它。但通常我們可能需要發送一個大數組。所以我們可以這樣做

<script> 
    <?php 
     $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); 
    ?> 
    var foo = echo json_encode($arr); 
</script> 

json_encode函數將處理所有轉義和其他問題。 Bug也確保json_encode在您的PHP版本中可用。