Выполнение двух ajax в одном запросе

Вопросы по вёрстке и JavaScript
Ответить
Kven
Сообщения: 112
Зарегистрирован: 2016.10.20, 23:03

Выполнение двух ajax в одном запросе

Сообщение Kven »

Всем здравствуйте! Очень прошу помощи, т.к. в javascript не силен. Попробую описать вкратце следующую реализацию, по нажатию на кнопку - объект (либо множество объектов) попадает в сессию и открывается модальное окно, где перечислен перечень добавленных объектов. В текущем модальном окне я хочу разместить под перечнем объектов короткую форму из двух полей, которую хотелось бы отправлять через ajax. В текущий момент у меня имеется два метода в javascript, хотелось бы из двух сделать один, а также получается что добавление объекта проходит (.add-to-cart), а вот форма так и не отображается. Текущие javascipt написаны не мною, а позаимствованы из открытых источников.

Код: Выделить всё

<a href="<?= \yii\helpers\Url::to(['cart/add', 'id' => $good->id])?>" data-id="<?= $good->id?>" class="btn btn-default btn--brown add-to-cart signgood">Рассчитать стоимость проекта</a>

Код: Выделить всё

$('.add-to-cart').on('click', function (e) {
    e.preventDefault();
    var id = $(this).data('id');
    $.ajax({
        url: '/cart/add',
        data: {id: id},
        type: 'GET',
        success: function(res){
            if(!res) alert('Ошибка!');
            showCart(res);
        },
        error: function(){
            alert('Error!');
        }
    });
});

Код: Выделить всё

$('.signgood').click(function(event){ // нажатие на кнопку - выпадает модальное окно
        event.preventDefault();
        var url = 'signgoods';
        var clickedbtn = $(this);
        //var UserID = clickedbtn.data("userid");
         
        var modalContainer = $('#cart');
        var modalBody = modalContainer.find('.modal-body');
        modalContainer.modal({show:true});
        // $.ajax({
        //     url: url,
        //     type: "GET",
        //     data: {/*'userid':UserID*/},
        //     success: function (data) {
        //         $('.form-goods').html(data);
        //         modalContainer.modal({show:true});
        //     }
        // });
    });
    $(document).on("submit", '.signgood-form', function (e) {
        e.preventDefault();
        var form = $(this);
        $.ajax({
            url: "submitsignup",
            type: "POST",
            data: form.serialize(),
            success: function (result) {
                console.log(result);
                var modalContainer = $('#cart');
                var modalBody = modalContainer.find('.modal-body');
                var insidemodalBody = modalContainer.find('.gb-goods-form');
 
    if (result == 'true'){
        insidemodalBody.html(result).hide(); // 
         //$('#cart').modal('hide');
        $('#success').html("<div class='alert alert-success'>");
        $('#success > .alert-success').append("<strong>Спасибо! Ваше сообщение отправлено.</strong>");
        $('#success > .alert-success').append('</div>');
 
        setTimeout(function() { // скрываем modal через 4 секунды
        $("#cart").modal('hide');
        }, 4000);
        }else{
            modalBody.html(result).hide().fadeIn();
            }
}
});
});
Ответить