Задать вопрос
@kornilov-s

Можно ли сделать два action у формы?

Задача: подписчик регистрируются на сайте и попадает в базу. Но я хочу, чтобы он также попадал в базу подписчиков для рассылки писем, которая организована на стороннем сервисе. Можно ли один submit связать с двумя action? И как?
  • Вопрос задан
  • 2838 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
Decadal
@Decadal
форме нужно поместить дополнительный action в другой атрибут. Например:
<form action="href1" data-action="href2">...</form>


$("form").submit(function() {
        var $self = $(this);
        var url1 = $self.attr('action'); 
        var url2 = $self.data('action');
        $.ajax({
            type: $self.attr('method'),
            url: url1,
            data: $self.serialize(),
            success: function(data) {
                //... 
            },
        });
        $.ajax({
            type: $self.attr('method'),
            url: url2,
            data: $self.serialize(),
            success: function(data) {
                //... 
            },
        });
        return false;
   });


вот самая примитивная реализация, можете отталкиваться от неё
Ответ написан
Комментировать
@freekir
А в одном файле нельзя сразу описать два функции?

Если успех, то просто сначала выполняется сохранение в базу, а после идет сохранение в базу подписчиков. Не надо ни каких двух экшенов.

Т,е. в файле будут выполняться две функции по очереди.

Я бы так сделал.
Ответ написан
Комментировать
teke_teke
@teke_teke
programador
Делайте запрос на свой сервер, а со своего, если там все успешно, на другой. А иначе, если сразу пошлете как-то 2 запроса на разные сервисы, что если один из них не сработает, например, из-за проблем с сетью или валидацию не пройдет, или 2ой прийдет быстрее, чем 1ый?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы