Многоцелевой доступ к переменной PHP в JS файл, который подключается в заголовке?

Многоцелевой доступ к переменной PHP в JS файл, который подключается в заголовке?

15.04.2016 05:41:51 Просмотров 45 Источник

Я создаю пользовательский модуль в Prestashop. В этом модуле я хочу использовать свою переменную php внутри файла js. Как я могу получить доступ к значению в файле js. Я не хочу передавать переменную в файл smarty. JS файл подключается в заголовке. Так может ли кто-нибудь сказать мне hw, чтобы передать значение php внешнему JS-файлу, который подключен в заголовке?

Любая помощь и предложение будут действительно заметны. Спасибо

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/36650203/prestashop-access-php-variable-in-a-js-file-which-is-hooked-in-header#comment60895209_36650203
для одной переменной я бы предложил передать ее как переменную smarty, единственный другой способ получить переменную из php - это сделать запрос ajax для получения переменной, которая может быть избыточной
https://stackoverflow.com/questions/36650203/prestashop-access-php-variable-in-a-js-file-which-is-hooked-in-header#comment60896984_36650203
@defuzed спасибо за комментарий. Но мой js-файл-это внешний файл, я имею в виду не внутри моего файла smarty, так как я могу передать значение?

Ответы - Многоцелевой доступ к переменной PHP в JS файл, который подключается в заголовке? / Prestashop access php variable in a js file which is hooked in header?

Eihwaz

16.04.2016 08:29:22

Вам придется передать его через 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.

UnLoCo

19.04.2016 12:38:06

Вот как это сделать

Media::addJsDef('var_name', $variable);
// or
Media::addJsDef(array('var_name' => $variable));
https://stackoverflow.com/questions/36650203/prestashop-access-php-variable-in-a-js-file-which-is-hooked-in-header/36704748#comment100480284_36704748
Большое спасибо. Должно быть где-то в документации.....
Закрыть X