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

ghostcom

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

fsv

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

ghostcom

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

fsv

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

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

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

fsv

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


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

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

ghostcom

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

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

*

ghostcom

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

ajax загрузка компонента на странице материала К2

Автор Divn

Ответов: 0
Просмотров: 520
Последний ответ 13.01.2023, 15:05:52
от Divn
При срабатывании ajax появляетсся div id="system-message-container"

Автор androv77

Ответов: 1
Просмотров: 454
Последний ответ 17.11.2022, 11:50:42
от androv77
Передача id поля ajax-запросом в модальное окно bootstrap 4 Joomla 3

Автор coolplaymaster

Ответов: 17
Просмотров: 1341
Последний ответ 21.12.2021, 17:42:45
от coolplaymaster
Модуль вывода категорий с функцией ajax

Автор Damarkuzz

Ответов: 3
Просмотров: 511
Последний ответ 26.06.2021, 10:41:31
от Damarkuzz
Как сделать из модуля ajax-поиска модуль умного ajax-поиска?

Автор Damarkuzz

Ответов: 3
Просмотров: 526
Последний ответ 17.06.2021, 14:07:48
от Damarkuzz