Перейти к содержанию
Форум поддержки пользователей VamShop

Как "поймать" заполнение поля на checkout.html ?


Рекомендуемые сообщения

Пользователь не авторизован, заполняет поля.

Вот ввел город в поле $INPUT_CITY

В этот момент модуль доставки по правилу

 if ($order->delivery['city'] != ' ') {
    $this->enabled = true;

внятно ловит момент  и отображается.

То есть инфа о введенном городе уже есть и ею можно воспользоваться.

Как?

 

Хочется: поймать момент заполненного поля $INPUT_CITY чтобы управлять отображением конструкции типа:

<div id="shipping_modules_box" class="sm_layout_box">
<h3>{$TITLE_SHIPPING_MODULES}</h3>
<div id="shipping_options"> 
{$SHIPPING_BLOCK}
</div> <!--div end shipping_options-->
</div> <!--div end shipping_modules_box --> 

Нужно создать условие:

{if $INPUT_CITY!=' '}-???????????
<div id="shipping_modules_box" class="sm_layout_box">
<h3>{$TITLE_SHIPPING_MODULES}</h3>
  <div id="shipping_options">
{$SHIPPING_BLOCK}
</div> <!--div end shipping_options-->
</div> <!--div end shipping_modules_box -->
{/if}

Подскажите правильный синтаксис, пожалуйста.

Ссылка на сообщение
Поделиться на другие сайты

Это через javascript делается.

 

Например посмотрите на поля Регион или Страна, при выборе отправляется ajax запрос на обновление списка доступных модулей доставки.

 

Аналогичным образом делается и с полем город.

 

В общем, используйте jQuery Ajax, на jquery.com есть подробная документация.

 

В checkout.php есть рабочие примеры.

Ссылка на сообщение
Поделиться на другие сайты

Нет, предлагается заход с другого конца без jQuery Ajax,

Приведенное и работающее правило для модуля доставки было нужно , чтобы до заполнения поля Город не загромождать страницу не нужной и недостоверной инфой о доставке. И это правило корректно работает.

Почему не будет работать скрытие - показ блока? Они же успешно исчезают и появляются по {if !$smarty.session.customer_id}?

А так остается заголовок ДОСТАВКА, а под ним ничего. Нужно его спрятать.

Ссылка на сообщение
Поделиться на другие сайты
  • 2 weeks later...
×
×
  • Создать...