Перейти к содержимому


Обновление Блока Корзины


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 pasiki

pasiki

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 231 сообщений
  • ГородСанкт-Петербург

Отправлено 24 Май 2012 - 09:42

При добавлении товара в корзину появляется всплывающее окно с информацией что товар добавлен.
Если выбрать "Продолжить покупки", то это окно исчезает, но обновления информации в блоке корзины (кол-во товаров и цена)
не происходит. Чтобы все обновилось - надо перейти на другую страницу.

Вроде так не было изначально... Значит я что-то задел при модификации магазина.
Помогите пожалуйста исправить.
Спасибо!

PS Посмотрел другие магазины на Мокко - у кого как. У некоторых обновляется, а у некоторых нет, как у меня.

#2 pasiki

pasiki

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 231 сообщений
  • ГородСанкт-Петербург

Отправлено 24 Май 2012 - 11:21

Разобрался. Я по дурости убил в шаблоне блока корзины переменные <span id="cartSum"> и <span id="cartCount">, заменив их на свои. Так делать не надо  <_<

#3 pasiki

pasiki

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 231 сообщений
  • ГородСанкт-Петербург

Отправлено 24 Май 2012 - 22:29

А нет, все-таки проблема осталась, когда в корзине нет товаров, и изначальная надпись на ней не содержит cartSum и cartCount (типа "В Вашей корзине нет товаров"). Корзина в этом случае не обновляется.

Как быть?
Писать фразу по умолчанию "В Вашей корзине 0 товаров на 0 руб." - не хочу, это слишком негативная фраза для покупателя.
Как вариант - обновлять страницу целиком после закрытия всплывающего окна, но я не знаю как это принудительно сделать.

#4 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 25 Май 2012 - 21:03

Нет необходимости писать данный текст, необходимо просто наличие блоков .newCartSum и .newCartCount. они могут быть пустыми.
Вся проблема возникает как-раз как вы выше и писали в отсутствии данных блоков. Обновление информации происходит кодом
<script>
$('#cartSum').html($('.newCartSum').html());
$('#cartCount').html($('.newCartCount').html());
</script>

в шаблоне "Ajax добавление товара в корзину". Так как в пустой корзине данных блоков нет - то и информация не обновляется.

#5 pasiki

pasiki

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 231 сообщений
  • ГородСанкт-Петербург

Отправлено 25 Май 2012 - 21:21

Пробовал.

Код моей корзины сейчас выглядит так:

{% IF cart_count_empty %}
<a href="http://telesam.net/catalog/%D0%92%D1%8B%D0%B1%D0%BE%D1%80-%D0%BF%D0%BE%D0%B4%D0%B0%D1%80%D0%BA%D0%B0" title="Тебя ждет подарок!">
<div id="cartInfo">
	<span class="contentPaddingTop" style="font-weight:bold;">Любишь сюрпризы?<br />
	Загляни в корзину!</span>
</div>
</a>
{% ELSE %}
<a href="{CART_URL}" title="Перейти в корзину">
<div id="cartInfo">
	<span class="contentPaddingTop">В твоей корзине<br />
	{% FOR cart_count %}
	   <span id="cartCount">{cart_count.COUNT} товар{cart_count.COUNT | gen_word_end("","а","ов")}</span>
	{% ENDFOR %}
	{% FOR cart_sum %}
		на <span id="cartSum">{cart_sum.NOW | money_format}</span>
	{% ENDFOR %}
	</span>  
</div>
</a>
{% ENDIF %}

Если вставить в первое условие пустые такие блоки, то при обновлении корзины через Ajax текст не заменяется, а добавляется к уже существующему.
Или я чего-то не понимаю? Как мне поменять данный блок, чтобы были "и волки сыты, и овцы целы"?

#6 pasiki

pasiki

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 231 сообщений
  • ГородСанкт-Петербург

Отправлено 25 Май 2012 - 23:07

Переделал всё на один блок <span id="cartLines">, который одинаков и в шаблоне корзины, и в шаблоне добавления товара в корзину.
Теперь все работает.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных