2016-04-15 19 views
1

我在Prestashop中創建了一個自定義模塊。在該模塊中,我想在js文件中使用我的php變量。我如何訪問js文件中的值。我不想將變量傳遞給smarty文件。 js文件被掛在頁眉中。那麼有人可以告訴我hw將php值傳遞給掛在頭部的外部js文件嗎?Prestashop訪問php變量在一個js文件中被鉤在頭上?

任何幫助和建議將非常可觀。謝謝

+0

單個變量,我建議把它當作一個Smarty的變量,唯一的方式來獲得PHP變量是使一個Ajax請求檢索變量,可能會過量 – defuzed

+0

@defuzed感謝您的評論。但我的js文件是一個外部文件,我的意思是不在我的smarty文件中,所以我如何傳遞值? – NewUser

回答

-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

3

這裏是如何做到這一點

Media::addJsDef(array('var_name' => $variable)); 
相關問題