0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 316 Просмотров
*

ghostcom

  • Захожу иногда
  • 101
  • 1 / 0
ajax корзина
« : 28.08.2018, 10:15:24 »
Доброго время суток! Есть собственный компонент со списком товаров. На клик добавить в корзину повешано js событие, аяксом добавляю товар в корзину. Корзина у меня это сессия+БД. Вопрос заключается в модуле корзины, а точней в ее обновлении. Допустим в модуле вешаю событие на ту же кнопку добавить в корзину, будет ли это правильно? Возможно корзина компонента (сессия) еще не обновилась и модуль будет получать не верные значения? Ок, можно сделать задержку в модуле пол секунды и сессия компонента уже обновится (но ведь не факт?). Или я вообще не в ту степь копаю, подскажите? Как правильно должны обновляется значения в корзине модуля? Спасибо!
« Последнее редактирование: 28.08.2018, 16:01:34 от ghostcom »
*

fsv

  • Живу я здесь
  • 2646
  • 382 / 2
Re: ajax корзина
« Ответ #1 : 28.08.2018, 21:07:01 »
При успешном ответе сервера на аякс-запрос добавления в корзину обновляйте модуль.
Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

ghostcom

  • Захожу иногда
  • 101
  • 1 / 0
Re: ajax корзина
« Ответ #2 : 28.08.2018, 21:57:07 »
При успешном ответе сервера на аякс-запрос добавления в корзину обновляйте модуль.
Как модуль узнает что ответ успешный?
*

fsv

  • Живу я здесь
  • 2646
  • 382 / 2
Re: ajax корзина
« Ответ #3 : 29.08.2018, 10:14:45 »
Как модуль узнает что ответ успешный?

Варианты навскидку:

1) Модуль так ничего и не узнает. При успешном ответе сервера на аякс-запрос добавления в корзину, если на странице есть корзина (проверить), делаете еще один аякс-запрос, используя jQuery load() (Loading Page Fragments), и обновляете только контейнер корзины по айдишнику.
Плюс: просто, одна строка.
Минус: по сети с очень разной пропускной способностью тяните весь HTML текущей обновленной страницы еще раз.
Где-то в недрах форума есть мой рабочий пример для VM1.

2) При успешном ответе сервера на аякс-запрос добавления в корзину тригаете на js кастомное событие. Модуль на него подписан, дальше сами.
Плюс: разделение логики разных расширений (компонент и модуль).

3) Т.к. у вас самопис, все в ваших руках. Ответом сервера на успешное добавление в корзину возвращайте json, среди параметров которого кроме success:true (для понимания) будет новый HTML корзины. Просто его меняете.

Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

ghostcom

  • Захожу иногда
  • 101
  • 1 / 0
Re: ajax корзина
« Ответ #4 : 29.08.2018, 16:00:08 »
Второй вариант я хочу реализовать. Пытался сделать универсальный метод для компонента и модуля, но чтоб они не были связаны. Для того чтоб в дальнейшем не было проблем с версткой как в модуле так и в компоненте.
Вот ключевой момент, но я не могу догнать как это выглядет!
тригаете на js кастомное событие. Модуль на него подписан

Модуль на него подписан
по какому событию должен обращаться "change"?)
СПАСИБО!
*

fsv

  • Живу я здесь
  • 2646
  • 382 / 2
Re: ajax корзина
« Ответ #5 : 29.08.2018, 21:15:26 »
...но чтоб они не были связаны. Для того чтоб в дальнейшем не было проблем с версткой как в модуле так и в компоненте.
Что-то вашу мысль не понял. Не вижу связи вопроса темы с версткой.


Второй вариант я хочу реализовать. ...как это выглядет!по какому событию должен обращаться "change"?)

Код
$('body').trigger('dadataAvailable');
------------------------------------
$('body').on('dadataAvailable', function(){
    console.log('oops');
});
Веб-разработка: заказ. Только сложная и объемная разработка. Дорого.
*

ghostcom

  • Захожу иногда
  • 101
  • 1 / 0
Re: ajax корзина
« Ответ #6 : 30.08.2018, 05:52:18 »
Цитировать
Не вижу связи вопроса темы с версткой.
Чтоб корзина была независимой и в ней без проблем не залазия в компонент можно было менять структуру, классы и тд.

Цитировать
$('body').trigger('dadataAvailable');
Спасибо! Потом отпишусь)

*

ghostcom

  • Захожу иногда
  • 101
  • 1 / 0
Re: ajax корзина
« Ответ #7 : 30.08.2018, 17:51:45 »
Спасибо fsv то что и требовалось!!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Пропала корзина

Автор Volna

Ответов: 4
Просмотров: 130
Последний ответ 24.05.2019, 12:47:39
от Volna
Подгрузка популярных материалов через ajax

Автор Merk

Ответов: 4
Просмотров: 254
Последний ответ 22.05.2019, 00:20:50
от antarey
Perfect ajax Popup Contact Form закрытие всплывающей формы

Автор Yailyaya

Ответов: 5
Просмотров: 167
Последний ответ 16.02.2019, 13:34:49
от Yailyaya
component/ajax/?format=json

Автор natashalina

Ответов: 5
Просмотров: 292
Последний ответ 15.11.2018, 12:52:28
от draff
Perfect ajax Popup Contact Form не закрывается после отправки

Автор fireman

Ответов: 2
Просмотров: 305
Последний ответ 07.11.2018, 19:55:38
от EvgenDu