Как можно решить проблемы с выводом элементов msMCD, msOrder, msGetOrder в модульном окне?

Я работаю с модульным окном, где используются модули msMCD, msOrder, msGetOrder. При проведении тестового заказа, страница перезагружается, а не обновляет информацию в модульном окне после использования msGetOrder. Как можно предотвратить перезагрузку страницы и обеспечить обновление данных в модульном окне?

К тому же, после перезагрузки страницы, в модульном окне отображаются сразу и msGetOrder, и msMCD. Это корректно?

И ещё, когда корзина наполнена товарами, форма для отправки заявки msOrder не появляется, что не совпадает с ожидаемым поведением. Это происходит даже при использовании инкогнито режима в браузере. Есть ли способ исправить это?
Изображение к вопросу
Изображение к вопросу
Изображение к вопросу
  • 1 декабря 2023 г. 1:29
Ответы на вопрос 6
Весьма сложно предложить конкретное решение без полной информации о структуре вашего приложения и том, как именно используются модули msMCD, msOrder, msGetOrder в вашем контексте. Однако, на основе вашего описания проблемы, предположительно, следующие подходы могут быть полезны:

1. Относительно проблемы перезагрузки страницы:

Возможно, вам следует предотвратить автоматическую перезагрузку страницы после использования msGetOrder. Отключить автоматическую перезагрузку можно с использованием метода `e.preventDefault()` в JavaScript. Если в вашей функции msGetOrder содержится отправка формы или любое другое действие, которое обычно вызывает перезагрузку страницы - примените следующий подход:

```javascript
document.querySelector('formid').addEventListener('submit', function(e) {
  e.preventDefault();
  
  // ваш код здесь
});
```
2. Относительно проблемы отображения msGetOrder и msMCD вместе:

К странице скорее всего подключено несколько экземпляров modals. Вам стоит проследить, чтобы каждый экземпляр модуля имел свой уникальный ID. 

3. Относительно проблемы с отсутствием формы msOrder:

Возможно, с помощью JavaScript стоит реализовать проверку состояния корзины. Как только в корзину добавляется товар, форма отправки заказа msOrder должна становиться видимой для пользователя. 

А именно:

```javascript
if (корзина.пустая() == false) {
  document.querySelector('msOrder-form').style.display = 'block';
}
```

Эти варианты — общие подходы, которые могут не полностью соответствовать реализации вашего приложения. Для более точного решения вашей проблемы рекомендуется обратиться к специалистам или в службу поддержки модулей msMCD, msOrder, msGetOrder.
 После внесенных изменений стала заметна еще одна проблема - сейчас в модальном окне отображается msGetOrder. 
 Взгляни на URL страницы - видно, что появился get-параметр msorder с id только что созданного заказа. Это объясняет, почему срабатывает msGetOrder. 
Пожалуйста, покажи код чанков. Наблюдается проблема с msGetOrder, который не исполняется через Ajax. 
 Касательно корзины, она, видимо, пуста. Это вполне предсказуемо, ведь заказ уже оформлен. 
 Я рекомендую изучить документацию или воспользоваться справкой на modx.pro - это может ответить на многие твои вопросы.
Похожие вопросы