我正在Prestashop中创建一个自定义模块。在那个模块中,我想在js文件中使用我的php变量。如何访问js文件中的值。我不想将变量传递给smarty文件。 js文件挂钩在标题中。那么有人能告诉我hw将php值传递给挂在标题中的外部js文件吗?
任何帮助和建议都会非常明显。感谢
答案 0 :(得分:5)
这里有怎么做
Media::addJsDef(array('var_name' => $variable));
答案 1 :(得分:-1)
你将不得不通过Smarty传递它,即使你不想这样做(为什么?)。你的模块已挂钩到displayHeader
钩子,这是
public function hookDisplayHeader($params)
{
$this->context->controller->addJS($this->getPathUri().'views/js/%your_js_file%.js');
$this->context->smarty->assign('foo', 'bar');
return $this->display(__FILE__, 'header.tpl');
}
您的header.tpl
看起来像是:
<script type="text/javascript">
var foo = "{$foo|escape:'htmlall':'UTF-8'}";
</script>
然后在您的javascript文件中,您可以使用全局foo
变量。