2013-06-04 24 views
-1

我有這個更改請求將我的所有內聯JavaScript移動到外部文件。我嘗試了一個簡單的複製粘貼到一個新的文件,但沒有運氣。我在以下行發生錯誤: var grp_list = <?php echo json_encode($arr_grp); ?>;url: "<?php echo $_SERVER['PHP_SELF']; ?>" 我至少有20個這樣的事件。我如何在外部javascript中替換這些php變量? 我檢查了很多論壇,但沒有找到任何解決方案。在外部js文件中的php數組

非常感謝您的幫助!

回答

1

簡而言之,您無法將PHP變量直接傳遞給外部JS文件,而無需在PHP中進行一些工作來生成文件,然後發送自定義標頭將該文件視爲JavaScript(編輯:請參閱文章Marcovecchio if這聽起來像是一個可能的解決方案)......一個快速解決方案是將內聯變量傳遞給全局變量,然後在外部文件中使用它們。這將允許你的JavaScript的大部分在外部文件中,但也允許你將你的變量從PHP傳遞給JS。

絕不是這是最好的解決方案,但它很可能是最容易的工作。

下面是一個例子:

<script type="text/javascript"> 
    var grp_list = <?php echo json_encode($arr_grp); ?>; 
    var url = "<?php echo $_SERVER['PHP_SELF']; ?>"; 
</script> 
<script type="text/javascript" src="external.js"></script> 
+0

AAH這個工作,我嘗試過,但它沒有回來工作,然後..反正..我很高興它的工作現在..我希望這類型的變化會妨礙表現?我們是否必須在html頭部以及body中放置此'? – user1165952

+0

你只需要確保你的外部文件來的變量後,它可以在''或'',不需要在兩個 – naththedeveloper

+0

得到它..謝謝.. – user1165952

1

那麼,你的JavaScript在你的PHP腳本中dinamically「彙編」。最簡單的解決方案是忘記翻譯變量。相反,將所有JS代碼(包括PHP部分)都放在一個PHP文件中,該文件將使用自定義標題僞裝成JS文件。所以,你的「的JavaScript」文件將是這樣的:

<?php 
    // Send a custom header, so that it will be interpreted as a js file.  
    header("Content-Type: application/javascript"); 
?> 

JavaScript and PHP mixed code will go in here, with no modifications 

保存此文件作爲類似「javascript.php」。然後,在你的主HTML或PHP文件,把它作爲:

<script src="javascript.php"></script> 

這就是它! javascript.php文件將被解釋爲服務器中的PHP文件,並由瀏覽器作爲JS檢索。只支付Javascript文件中處理PHP類型的注意事項:它可能取決於主腳本中的上下文,因此可能需要進行其他調整。