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

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

Задача: подписчик регистрируются на сайте и попадает в базу. Но я хочу, чтобы он также попадал в базу подписчиков для рассылки писем, которая организована на стороннем сервисе. Можно ли один submit связать с двумя action? И как?
  • Вопрос задан
  • 2640 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
kosolapus
@kosolapus
Если помогло - отмечайте решением
На раз. Через JS ajax'ом закидываете сериализованные данные формы в любое количество обработчиков и наслаждаетесь результатом
Если хотите чистым html - честно, не знаю, но предположительно - нет
Ответ написан
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ый?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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