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

ghostcom

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

fsv

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

ghostcom

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

fsv

  • Живу я здесь
  • 2664
  • 384 / 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

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

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

fsv

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


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

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

ghostcom

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

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

*

ghostcom

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

Как добавить javascript - ajax в настройки своего плагина?

Автор johnsnow91

Ответов: 7
Просмотров: 281
Последний ответ 22.05.2020, 20:58:20
от sivers
Сформировать ajax запрос с помощью jQuery

Автор mirstiker

Ответов: 11
Просмотров: 324
Последний ответ 29.04.2020, 18:16:02
от beliyadm
ajax + Joomla

Автор Spell161

Ответов: 7
Просмотров: 214
Последний ответ 24.01.2020, 08:19:56
от Spell161
AJAX подгрузка любого модуля

Автор sasha8888

Ответов: 34
Просмотров: 2213
Последний ответ 20.12.2019, 15:34:35
от beliyadm
Организация обработки ajax-формы

Автор effrit

Ответов: 30
Просмотров: 683
Последний ответ 13.11.2019, 22:27:41
от ProtectYourSite