@TommyAngel

Несколько форм обратной связи на сайте. Проблема с обработчиком js. Как реализовать?

Всем здравствуйте)
Уже весь интернет перерыл, но так и не нашел ответа.
На сайте есть несколько форм, есть php mailer с ним нет проблем, но загвостка встала о обработчие js для форм. Итак есть несколько форм:
<form class="contact_form" id="form" >
        <div class="in-form">
		  <input type="hidden"  name="robotpost" value="robot@dcartravel.ru"/>
		 <p>Ваше имя:</p>
		  <input type="text" name="name" placeholder="Ваше имя" required />
		 <p>Ваш телефон:</p>
		  <input type="tel" name="tel" placeholder="Ваш номер" required />
		 <button class="submit" type="submit" >Заказать звонок</button>
		</div>
        </form>

Еще одна форма:
<form class="right-form" id="osago">		
              <p><b>Ваше имя:</b><br><input type="text" name="nameosago" placeholder="Ваше имя" required></p>
			  <p><b>Телефон:</b><input type="tel" name="phoneosago" placeholder="Ваш телефон" required></p>
			  <button class="butright" type="submit" >Заказать расчет</button>
		</form>


Как видите присвоил id формам.

Есть обработчик

$(document).ready(function () {
    $("form").submit(function () {
        // Получение ID формы
        var formID = $(this).attr('id');
        // Добавление решётки к имени ID
        var formNm = $('#' + formID);
        $.ajax({
            type: "POST",
            url: 'post.php',
            data: formNm.serialize(),
            success: function (data) {
                // Вывод текста результата отправки
                $(formNm).html(data); 
            },
            error: function (jqXHR, text, error) {
                // Вывод текста ошибки отправки
                $(formNm).html(error);         
            }
        });
        return false;
    });
});


Пробовал прописывать вместо "form" id но не выходит, как я понял обработчик этот отправляет данные со всех форм.
Помогите пожалуйста, нужно чтобы при нажатии на кнопку с одной формы отправлял данные на post.php с другой формы например на post2.php
  • Вопрос задан
  • 712 просмотров
Решения вопроса 1
teknik2008
@teknik2008
Расскажите про GOLANG. Мне интересно
Пригласить эксперта
Ответы на вопрос 4
gobananas
@gobananas
finishhim.ru
Как-то так, логика думаю понятна
//id уже есть
var formNm = $('#' + formID);

//добавим пару условий
if(formNm == form){
  var page = 'post.php';
}
if(formNm == osago){
  var page = 'post2.php';
}

// Далее где отправка
$.ajax({
            type: "POST",
            url: page,
...

Или в if вместо formNm ставите formID, смотря где у вас чистый id
Ответ написан
hahenty
@hahenty
('•')
По идее, в теге формы должен быть атрибут action, его и указывать в url.
и кстати, вместо formNm this не катит?
Ответ написан
Добавить к каждой форме свой идентификатор.
Ответ написан
mrusklon
@mrusklon
Не получается? Яростно гугли!
а я бы сделал 2 разных скрипта и не парился
$(document).ready(function () {
     $("#osago").submit(function () { 
        var th = $(this);
        $.ajax({
            type: "POST",
            url: "mail.php",
            data: th.serialize()
        }).done(function () {
         alert('все ок');
        });
        return false;
    });
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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