2012-09-22 55 views
-1

我無法從PHP填充Javascript變量。從Javascript調用PHP函數 - 單獨文件中的PHP

我的index.php文件是典型的形式,即

<?php 
    function blah() {} 
    function doThis ($sUserID) {} 
?> 

<HTML> 
    <head> 
    <script src="test.js"></script> 
    </head> 

    show results 
</HTML> 

麻煩的是我需要填充一個Javascript變量(在「test.js」文件),以從一個PHP函數叫做值(在php文件中)。

我曾嘗試:

var jsVar = '<?php echo doThis(sUserID)?>'; 
document.write("jsVar: ", jsVar); 

但沒有結果。

那麼如何從test.js調用PHP函數(在另一個PHP文件中)呢?

謝謝。

+0

65%不壞我見過這樣的伎倆,但確確實實.. – dbf

回答

1

只是聲明瞭一個全局變量test.js被加載之前,應該工作

<head> 
    <script type="text/javascript> 
     var jsVar = '<?php echo doThis(sUserID) ?>'; 
    </script> 
    <script src="test.js"></script> 
    </head> 

如果doThis(sUserID);返回一個有效的字符串,它應該工作。

+0

喜DBF:好主意,但我需要先運行一個JavaScript函數來獲取sUserID變量,然後我傳遞給PHP,然後傳回數據。 – Jeremy

+0

@Jeremy說實話,我認爲你必須在這裏重新考慮你的邏輯設計。 – dbf

+0

你說得對。我將所有Javascript放在部分,而不是單獨的.js文件。工作正常。謝謝你的幫助。 – Jeremy

1

doThis()不會返回任何東西,所以echo什麼都不會顯示。但並非全部。你不能從JS腳本調用PHP函數,除非你先讓JS文件通過PHP解釋器(這不是默認行爲)。您可以通過重命名你的test.jstest.php

+0

謝謝。我確實嘗試過,但有一個包含我所有Javascript代碼的PHP文件似乎讓Eclipse編輯器感到困惑。 – Jeremy