Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用Yii创建动态JS_Javascript_Php_Yii_Yii2 - Fatal编程技术网

Javascript 用Yii创建动态JS

Javascript 用Yii创建动态JS,javascript,php,yii,yii2,Javascript,Php,Yii,Yii2,我试图在我的页面上添加一个谷歌地图,并根据变量动态绘制边框 我不知道我应该在Yii做什么。资产文件似乎只是让某些页面加载某些静态js的一种方式,但似乎没有让javascript从PHP端生成的变量生成的方式 我想我应该使用registerJs(),但我不清楚生成这里传递的代码的一般方法,因为它似乎只需要完整的java脚本。我是否简单地在控制器中创建一个变量并在那里分配javascript代码字符串?如果我想让一个前端编码器进来并调整代码,当它埋在控制器中时,这似乎不是最好的方法 救命啊 我这样做

我试图在我的页面上添加一个谷歌地图,并根据变量动态绘制边框

我不知道我应该在Yii做什么。资产文件似乎只是让某些页面加载某些静态js的一种方式,但似乎没有让javascript从PHP端生成的变量生成的方式

我想我应该使用
registerJs()
,但我不清楚生成这里传递的代码的一般方法,因为它似乎只需要完整的java脚本。我是否简单地在控制器中创建一个变量并在那里分配javascript代码字符串?如果我想让一个前端编码器进来并调整代码,当它埋在控制器中时,这似乎不是最好的方法

救命啊

我这样做(不是使用谷歌地图,而是使用register JS):

视图::POS_头部对应头部部分

视图::打开后立即开始

视图::关闭前右端的位置

视图::POS_已准备好在文档就绪事件上执行代码。这将 自动注册jQuery

视图::POS_加载,用于在文档加载事件上执行代码。这将 自动注册jQuery

它位于视图文件中,并使用视图类registerJs()


编辑:注意,通过使用POS\u LOAD和POS\u READY,该方法将自动注册jQuery js文件并将其包含在jQuery(window).LOAD()或jQuery(document).READY()中。

此外,将所有这些代码片段放在一起的一种方法是使用视图文件;只要有一个视图文件的集合,这些文件就可以创建和注册各种Javascript。然后,您可以根据需要在主视图文件中渲染这些文件,但它们是可重用的,并且如果需要编辑它们,它们都在一个地方。
$script = "Javascript here, with your ".$phpvariables." in it.";
$this->registerJs($script, View::POS_END);