2009-10-28 24 views
2

假設我正在使用MVC框架,和我的意見要求位於外部視圖中的文件JavaScript文件。但是,位於外部文件中的JavaScript依賴於我的視圖中的一些PHP變量。如果我將Javascript包含在HTML視圖中的標籤中,我可以簡單地將PHP變量注入到Javascript中。使用PHP變量包括視圖文件在MVC

我知道我可以創建隱藏的輸入字段,並指定我需要因爲它們的值的變量。還有另一種更優雅的方式嗎?

我知道我也許可以逃脫命名.js文件轉換爲.php,但我不太喜歡這樣做的。

回答

4

我不知道我完全理解你的問題,但如果我有主旨正確,不能你剛纔設置視圖中的腳本標籤中的全局JavaScript變量,將被傳遞到外部JS?

<script type="text/javascript"> 
    var myvar1 = <?=$myvar1 ?>; 
    var myvar2 = "<?=$myvar2 ?>"; 
</script> 
<script type="text/javascript" src="myexternaljs.js"></script> 
1

你可以做從JS服務器(例如REST)的調用,讓你依靠的變量。你將不得不爲此創建一個服務,但結構將保持乾淨。

1

您可以發佈到網頁上,你有其他腳本之前,或使用這樣的事情,包括PHP文件就像一個js文件:

ob_start(); 
//all variables here 
echo 'var someJson = ' 
    . json_enode($someArray); 
$content = ob_get_clean(); 

header('Content-Type: text/javascript'); 
header('Content-Length: ' . strlen($content)); //or mb_strlen with utf8 
echo $content; 
exit; 

您可以添加標題,以提供高速緩存與etag(散列/ ID),最後修改或過期/雜注。