Обновление корзины на странице категории

Каким образом можно обновлять корзину без обновления страницы? Мне нужно вызывать корзину в модальном
окне. Товары удаляются, сумма считается в реальном времени, но новые появляются только после обновления.
Олег Ракул
19 марта 2013, 14:30
modx.pro
4 225
0

Комментарии: 15

Василий Наумкин
19 марта 2013, 20:20
0
Смотри в JavaScript, там есть метод miniShop2.Cart.status, он получает состояние корзины и обновляет ее на странице.
    Олег Ракул
    19 марта 2013, 21:46
    0
    Этот метод там есть, но он есть в каждом действии корзины и в «add» в том числе. Вы уверены что это оно?
      Олег Ракул
      19 марта 2013, 23:51
      0
      Понятно — речь про миникорзину. Но мне нужна основная. Понял, что корзина прописывает в код страницы строчки с товарами, но не добавляет их в реальном времени. У метода .remove есть функция remove_position. Можно дать намек как сделать нечто подобное для метода .add?
        Василий Наумкин
        19 марта 2013, 23:54
        0
        В смысле, научить использовать jquery?

        Отправляешь ajax запрос на сервер, своему скрипту, он смотрит в корзину и возвращает оформленные товары, которые ты вставляешь на страницу.

        В родном функционале этого нет, но легко можно сделать своим сниппетом.
          Олег Ракул
          20 марта 2013, 13:16
          0
          Дело в том, что minishop2 блокирует ajax запросы и с помощью этого сниппета и с помощью голого jquery по load. Обновиться корзине получается, но где-то один раз из 10 событий по клику на кнопке «В корзину», миникорзина и сама корзина стопорится товары в них не собираются. Без Ajax все отлично.
          Я понимаю что не программист, но вижу тут подобие бага, его можно обойти?
            Василий Наумкин
            20 марта 2013, 13:54
            0
            Как он может блокировать запросы?!

            Ты хоть в исходный код загляни, где там блокировки? Там набор методов, которые вызываются, когда нужны.

            При загрузке страницы запускается только miniShop2.initialize();, который устанавливает обработчики на некоторые элементы.

            Например, на ссылки с классом «ms2_link», но никто не мешает тебе добавить еще и свой класс и повешать собственное событие на него.

            Никаких «блокировок» нет.
              Олег Ракул
              20 марта 2013, 15:37
              0
              единственное что помогло установка setInterval на 2000 по событию на клик
              корзина не желает обновлять инфу сразу и это уже косяк минишопа
              блокировка запросов происходит следствием неспособности корзины отдать товары мгновенно
                Василий Наумкин
                20 марта 2013, 15:49
                0
                Ну косяк, так косяк.

                Тебе виднее, несмотря на «понимаю что не программист».
                  Олег Ракул
                  20 марта 2013, 15:55
                  0
                  мне не виднее
                  просто я не вижу других объяснений
                  вы если не хотите разбираться не отвечайте
                  ну вы отвечаете я и пытаюсь что-то вытянуть

                  видимо нет смысла, замолкаю
                    Олег Ракул
                    20 марта 2013, 18:19
                    0
                    прошу прощения, это я протупил с аяксом
                    нужно проверять загрузку на ошибку и грузить снова
                    тем не менее клиентов посылать тоже надо уметь -)
                      Василий Наумкин
                      20 марта 2013, 18:33
                      0
                      Ты не клиент.

                      Те кто заказал и оплатил miniShop2 — клиенты =)
                        Олег Ракул
                        20 марта 2013, 21:24
                        0
                        это поверхностная точка зрения
                        что с программиста взять -)
                        без обид
      Олег Ракул
      20 марта 2013, 21:28
      1
      0
      Кому нужна корзина на странице категории или товара.

      Не вижу смысла использовать ее в таком случае за пределами модального окна.
      В таком случае используем этот мод модального окна для bootstrap. В демо смотрим пример с ajax
      github.com/jschr/bootstrap-modal

      Или используем следующую конструкцию.

      var $modal = $('#div_target');

      $('button.cart_add').on('click', function(){

      setTimeout(function(){
      $modal.load('modal_ajax.html', '', function(){
      $modal.modal();
      });
      }, 1000);
      });

      З.Ы. работа следующего кода без мода по ссылке не проверялась. Подошло и ладно.
        Василий Столейков
        04 ноября 2014, 17:45
        0
        Простите, а что находится на странице modal_ajax.html? Страница корзины, которая подгружается в модальное окно?
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        15