@IliaMal

Как после подгрузки контента через ajax выполнить js скрипты (XMLHttpRequest)?

Здравствуйте.

Через фофч обновляю кол-во товаров в корзине, затем другим запросом подгружаю php страницу через:
function addToCart(id) {

        const form = document.querySelector('.ruler--' + id);
        let sizeHave = false;

        const url = '/ajax/add_to_cart.php';

        const request = new XMLHttpRequest();

        let params = new FormData(form);

        for (let pair of params.entries()) {
            if (Number(pair[1]) > 0) sizeHave = true;
        }

        params = getQueryString(params);

        request.open("POST", url, true);
        request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        request.addEventListener("readystatechange", () => {
            if(request.readyState === 4 && request.status === 200) {

                const requestBasket = new XMLHttpRequest();

                requestBasket.open("POST", "/personal/basket/ajax.php", true);
                requestBasket.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                requestBasket.addEventListener("readystatechange", () => {
                    if(requestBasket.readyState === 4 && request.status === 200) {
                        document.querySelector('.basket').innerHTML = requestBasket.responseText;
                    }
                });

                requestBasket.send();

            }
        });

        request.send(params);

    }


После подгрузки корзины ajax-ом данные выводятся корректно, но скрипты js не выполняются.
Что бы избежать проблем с отсутствием объектов в DOM, я передаю функции вместе с контентом, то есть в подгружаемом файле ajax.php в конце страницы разместил все нужные скрипты.

Скорее всего не правильно работаю с XMLHttpRequest(), но по мануалам не могу найти в чем ошибка, вроде все по инструкциям.

Помогите разобраться как правильно выполнять асинхронные запросы на чистом js.
  • Вопрос задан
  • 30 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы