我正在使用 MVC 设置,并且尝试将 javascript 注入到我的视图 (.php) 中,但允许 javascript 访问视图可以访问的所有变量。我的最终目标是能够从我的 javascript 访问 PHP 变量(例如,我可以alert()
使用产品名称)。
这是我的申请流程:
- 启动输出缓冲区
- 在关联数组上调用 extract() (这包含我的视图的数据)
- 在视图文件上调用 require
- 返回输出缓冲区的内容,并清除缓冲区
- 回声缓冲区
我有一个函数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');
. $product
它注入了 javascript,但是当我渲染视图时,我收到一个 PHP 通知,指出有一个未定义的变量。但是,如果我手动编写require
语句,一切正常。我试图通过使用来实现的目标是什么injectJS()
?
编辑
我忘了提到我确实尝试将变量显式传递给injectJS()
,它确实有效,但我不想总是传递变量。如果视图需要将许多变量传递给 JS,它可能会变得混乱和繁琐。有没有办法我可以(在函数内)在负责调用的脚本范围内获取变量injectJS()
?
编辑 2
再三考虑,再次传递变量并不是一个真正的问题,我想我只是贪婪/懒惰;)。我只会在需要时将变量传递给injectJS()
. 感谢您的回复