Передача переменной JavaScript в smarty - PullRequest
2 голосов
/ 28 июля 2011

У меня проблемы с передачей переменной из JavaScript в smarty.

Пример:

{literal}
<script type="text/javascript">
  var js_variable = 110;
</script>
{/literal}

jQuery('div.fakbox_msg').html("{/literal}{lang_sprintf id=100013 1=js_variable}{literal}");

Ответы [ 3 ]

1 голос
/ 14 октября 2013

Вы не можете сделать это простым способом. PHP и расширение Smarty анализируются и запускаются на стороне сервера, прежде чем браузер получит данные. JavaScript запускается на стороне клиента, когда браузер анализирует HTML, CSS и Javascript, отправленные сервером.

Вам придется каким-то образом сделать новый HTTP-запрос, отправив новые данные. Вы можете сделать это, перезагрузив всю веб-страницу и отправив материал в строке запроса (после? В URL), или немного более продвинутый, выполнив Ajax-вызов из вашего кода JS и заставив JS внести изменения на нужную вам страницу. Последний является более сложным и требует некоторого знания Javascript, но нет необходимости перезагружать страницу целиком. для получения дополнительной информации : Назначение переменной JavaScript переменной Smarty

0 голосов
/ 06 марта 2012

Smarty не может использовать переменные на стороне клиента, например, созданные в JavaScript.

0 голосов
/ 28 июля 2011

Я никогда не использовал Smarty, поэтому могу ошибаться, но из того, что я вижу в вашем коде. это должно работать:

jQuery('div.fakbox_msg').html("{/literal}{lang_sprintf id=100013 1=" + js_variable + "}{literal}");

...