Не обновляет количество товаров в корзине при удалении товара

Тема в разделе "OpenCart", создана пользователем vivivor, 13 фев 2013.

  1. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
    Изменил корзину, все что смог сам настроил, но никак не получается сделать чтоб при удалении товара из выпадающей корзины, обновлялось количество оставшихся товаров.
    Помогите решить проблему(скорее всего она кроется в конце этих строк <td class="remove"><img src="catalog/view/theme/default/image/remove-small.png")

    Код из cart.tpl
    Код из header.tpl (в меню добавил к списку в конце еще один li )
    Код из common.js (хотя и без него работает)
     
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.050
    Симпатии:
    777
    Обновлением корзины при удалении товара занимается вот этот скрипт:
    Код:
    onclick="(getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') ? location = 'index.php?route=checkout/cart&remove=<?php echo $product['key']; ?>' : $('.content').load('index.php?route=module/cart&remove=<?php echo $product['key']; ?>' + '#cart-total > *');
    В данном случае нас интересует его последняя часть:
    Код:
    $('.content').load('index.php?route=module/cart&remove=<?php echo $product['key']; ?>' + '#cart-total > *');
    .load() должен загрузить полученный контент в блок .content. То есть, получается, что блок со счётчиком просто выпадает из обновлений.

    Соответственно, вместо .content в скрипте должен быть селектор блока, в который обёрнута вся корзина целиком: в данном случае .cart-in-li. А вообще, советую как обёртку использовать всё же div и его уже вложить в li.
     
    vivivor нравится это.
  3. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
    Спасибо! работает, но теперь он после удаления товара удаляет ссылку
    <a class="cart-href" href="checkout"><span class="ukazatel"></span></a>

    старую строку заменил на
    $('.cart-in-li').load('index.php?route=module/cart&remove=<?php echo $product['key']; ?>' + '#cart-href > *');
    --- добавлено: 15 фев 2013 в 16:28 ---
    и еще у меня почему то выходит два блока .content вложенные) (это было)
     
  4. alina

    alina

    Регистрация:
    2 фев 2013
    Сообщения:
    36
    Симпатии:
    8
    Отключи и включи заного модули...бывает..
     
  5. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.050
    Симпатии:
    777
    Это было предсказуемо: этой ссылке нет в шаблоне корзины, нужно просто перенести её в cart.tpl.

    Покажите header.tpl или шаблон меню, если он отдельно.

    Глупый совет.
     
    vivivor нравится это.
  6. vivivor

    vivivor

    Регистрация:
    4 янв 2013
    Сообщения:
    186
    Симпатии:
    162
    Dotrox спасибо большое, переместил ссылку в модуль корзины - теперь все ок

    вот header.tpl
    Код:
    <div id="container">
    <div id="header">
      <a style="padding:98px 275px 98px 275px;position:absolute;left:210px;" href="/"></a>
    </div>
    <?php if ($categories) { ?>
    <div id="menu">
      <ul>
    	<?php foreach ($categories as $category) { ?>
    	<li><?php if ($category['active']) { ?>
      <a href="<?php echo $category['href']; ?>" class="active"><?php echo $category['name']; ?><span class="razdelitel"></span><span class="ukazatel"></span></a>
      <?php } else { ?>
      <a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?><span class="razdelitel"></span><?php if ($category['children']) { ?><span class="ukazatel"></span><?php } ?></a>
      <?php } ?>
    	  <?php if ($category['children']) { ?>
    	  <div>
    		<?php for ($i = 0; $i < count($category['children']);) { ?>
    		<ul>
    		  <?php $j = $i + ceil(count($category['children']) / $category['column']); ?>
    		  <?php for (; $i < $j; $i++) { ?>
    		  <?php if (isset($category['children'][$i])) { ?>
    		  <li><a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a></li>
    		  <?php } ?>
    		  <?php } ?>
    		</ul>
    		<?php } ?>
    	  </div>
    	  <?php } ?>
    	</li>
    	<?php } ?>
    	<li class="cart-in-li">
    	<?php echo $cart; ?>
    	</li>
      </ul>
    </div>
    <?php } ?>
    <div id="notification"></div>

    и начало cart.tpl
    Код:
    <a class="cart-href" href="checkout"><span class="ukazatel"></span></a><span id="cart-total"><?php echo $text_items; ?></span>
      <div class="content">
    	<?php if ($products || $vouchers) { ?>
    	<div class="mini-cart-info">
    	  <table>
    		<?php foreach ($products as $product) { ?>
    		<tr>
    		  <td class="image"><?php if ($product['thumb']) { ?>
     
  7. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    2.050
    Симпатии:
    777
    Похоже, проблема здесь (common.js):
    Код:
    $('.cart-in-li').live('hover', function() {
    $('.content').load('index.php?route=module/cart .content ');
    });
    Оно загружает в .content ещё один .content из аякса. Можно попробовать сделать так:
    Код:
    $('.cart-in-li').live('hover', function() {
    $('.content').load('index.php?route=module/cart .content > * ');
    });
     
    vivivor нравится это.