我正在使用MVC設置,我試圖注入JavaScript到我的意見(.php),但允許JavaScript訪問所有的視圖有權訪問的變量至。我的最終目標是能夠從我的JavaScript訪問PHP變量(例如,所以我可以alert()
產品的名稱)。問題與使用要求內功能和變量範圍
這裏是我的申請流程:
- 開始輸出緩衝
- 呼叫提取物()相聯繫的數組上(這包含的數據對我的看法)
- 呼叫需要在視圖文件
- 返回輸出緩衝區的內容,並清除緩衝區
- 回顯緩衝區
我有一個函數injectJS()
,主要內容如下:
function injectJS($jsFile) {
require APP_DIR . $jsFile;
}
下面是使用Javascript(alert.js)的示例中,我要注入:
<script type="text/javascript">
alert("product name: <?php echo $product['name']; ?>");
</script>
所以,我認爲文件中,我打電話給injectJS('alert.js');
。它注入了javascript,但是當我渲染視圖時,我得到了一個PHP通知,其中有一個未定義的變量$product
。但是,如果我手寫require
聲明,一切正常。我試圖通過使用injectJS()
來實現嗎?
編輯
我忘了提,我也嘗試明確傳遞變量injectJS()
,和它的工作,但我不希望有永遠傳遞變量。如果視圖需要將許多變量傳遞給JS,它可能會變得混亂&繁瑣。有沒有一種方法可以(在函數內)獲取腳本範圍內的變量,負責調用injectJS()
?
編輯2
關於第二個想法,傳遞變量又是不一個現實的問題,我想我只是貪婪/懶惰)。我會在需要時將這些變量傳遞給injectJS()
。感謝您的答覆
難道你不能傳遞一個包含$ products的所有東西的大數組嗎?或者你認爲這仍然是一團糟? – 2009-09-22 04:07:54