Как передать произвольное значение (параметр) из smarty в скрипт?

Доброго времени суток.

Помогите, пожалуйста, решить проблему. Есть некое значение, которое задается в шаблоне cart.html, например:

{$min_cart = 100}

Как это значение передать в cart.js? data.min_cart выдает пустоту. Я подозреваю, что из-за "nocache = null". Как с этим бороться?


5 ответов

  • 1

    Напрямую передать не получится, но можно делать через глобальные переменные.


    <script type="text/javascript">
    $.wa.menu.init({
            static_url: "{$wa_app_static_url}",
            wa_url: "{$wa_url}"
    });
    var wa_url = "{$wa_url}";
    </script>
    • +1
      Плебей Плебей 29 апреля 2017 22:40 #

      Что-то со смазкой для лыж у меня проблемы ))

      Не совсем понял. Этот скриптик мне надо запихнуть в cart.html?

      Я сделал так:

      <script type="text/javascript">
      $.wa.menu.init({
              min_cart: "{$min_cart}"
      });
      var min_cart = "{$min_cart}";
      </script>

      Но вызов data.min_cart из cart.js все так же выдает undefined.

    • +1
      Плебей Плебей 30 апреля 2017 13:21 #

      Выкрутился так - вывел необходимое значение в шаблоне в:

      <div class="min_cart" style="display: none;">{$min_cart}</div>

      а в скрипте получил его с помощью:

      var min_cart = $('.min_cart').html();

      Тот еще костыль, конечно. Но изящнее решения не нашел.

      • +2

        Нормальное решение, чуточку поправьте(можете не создавать новый элемент, а использовать для этого уже существующий):

        <!-- HTML -->
        <div id="min-cart" data-min-cart="{$min_cart}"></div>
        
        /* SCRIPT */
        var minCart = $('#min-cart').data('min-cart');

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите