Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Динамическое обновление div в зависимости от переменной. Переменная Smarty в JS (https://javascript.ru/forum/dom-window/69247-dinamicheskoe-obnovlenie-div-v-zavisimosti-ot-peremennojj-peremennaya-smarty-v-js.html)

N1rvana 08.06.2017 15:52

Динамическое обновление div в зависимости от переменной. Переменная Smarty в JS
 
Есть переменная количество продуктов при покупке {$cart_qties} Smarty (Prestashop)

Нужно чтоб при значении 4 или меньше отображалась определенная информация в каком-то div и при достижении значения 5 или больше отображалась другая

К примеру вот такой код работает

Код:

{if {$cart_qties} < 5 }
<span> Меньше 5 </span>
{else}
<span> Больше 5 </span>
{/if}

но информация не обновляется динамически. Если переменная 5 или больше то
Код:

<span> Больше 5 </span>
не появится пока страницу не обновить.

Думал сделать через javascript с использованием innerHTML для динамического обновления, но у меня не получается использовать переменную в скрипте

<script>
if ("{$cart_qties}" > 5) {
    document.getElementById("demo").innerHTML = "Больше 5";   
}
</script>

<p id="demo">Меньше 5</p>


По сути не важно каким образом решить этот вопрос, через JavaScript или может есть другой способ динамически обновлять данные исходя из изменения переменной

j0hnik 08.06.2017 15:59

Js не знает что у вас что-то обновилось! используйте обработчики событий

N1rvana 08.06.2017 16:09

я понимаю что нужно добавить onchange чтоб скрипт срабатывал снова и снова, просто всегда высвечивается "Меньше 5" и никогда "Больше 5". То есть скрипт не работает, думаю переменную Smarty JS не получается взять

laimas 08.06.2017 16:19

Цитата:

Сообщение от N1rvana
думаю переменную Smarty JS не получается взять

На клиенте нет переменных Smarty, на клиенте будет то, что выведет сервер - содержимое этой переменной.

N1rvana 08.06.2017 17:43

Цитата:

Сообщение от laimas (Сообщение 454928)
На клиенте нет переменных Smarty, на клиенте будет то, что выведет сервер - содержимое этой переменной.

на странице есть imput в котором меняется количество продукта. Это и есть эта переменная,
и надо выводить к примеру только div1 когда imput<5
и только div2 когда imput>5

laimas 08.06.2017 18:02

Цитата:

Сообщение от N1rvana
на странице есть imput в котором меняется количество продукта

Ну а причем тут то, что изначально вывел сервер? Обрабатывайте изменения в поле вводе. Только тут не выводить что-то надо, а изменять содержимое уже имеющегося div.


Часовой пояс GMT +3, время: 05:04.