JS получение данных с input и отправка на почту

338
20 февраля 2017, 12:34

Добрый день. Реализовываю отправку данных с input формы на почту.

Я все настроил, отлично работает, почту отправляет, но только если на странице одна форма. Если же я хочу сделать 2 формы, то при нажатии на кнопку "отправить" второй формы на почту приходит пустое сообщение, это связано с тем, что в mail.php указаны данные по отправке только для формы 1.

Я хочу сделать для каждой формы свой файл с настройками mail1.php и mail2.php

Нужно сделать так, что бы js определял с какой формы <form id="oneForm"> или <form id="twoForm"> приходит запрос. Если с формы <form id="oneForm"> то передавал данные в mail1.php если же с <form id="twoForm"> то в mail2.php

Привожу ниже код моего js.

$(document).ready(function () { $("form").submit(function () { // Получение ID формы var formID = $(this).attr('id'); // Добавление решётки к имени ID var formNm = $('#' + formID); var message = $(formNm).find(".msgs"); // Ищес класс .msgs в текущей форме и записываем в переменную var formTitle = $(formNm).find(".formTitle"); // Ищес класс .formtitle в текущей форме и записываем в переменную $.ajax({ type: "POST", url: 'sendmail/mail.php', data: formNm.serialize(), success: function (data) { // Вывод сообщения об успешной отправке message.html(data); formTitle.css("display","none"); setTimeout(function(){ //$(formNm).css("display","block"); $('.formTitle').css("display","block"); $('.msgs').html(''); $('input').not(':input[type=submit], :input[type=hidden]').val(''); }, 3000); }, error: function (jqXHR, text, error) { // Вывод сообщения об ошибке отправки message.html(error); formTitle.css("display","none"); // $(formNm).css("display","none"); setTimeout(function(){ //$(formNm).css("display","block"); $('.formTitle').css("display","block"); $('.msgs').html(''); $('input').not(':input[type=submit], :input[type=hidden]').val(''); }, 3000); } }); return false; }); //для стилей формы var $input = $('.form-fieldset > input'); $input.blur(function (e) { $(this).toggleClass('filled', !!$(this).val()); }); });

В mail.php идет непосредственный сбор данных с инпутов и отправка почты.

Буду очень благодарен любой помощи!

Answer 1

Добавить formID к файлу php

url: 'sendmail/mail' + formID + '.php'

Назовём formID = 'FormOne'; соответственно файл необходимо назвать mailFormOne.php

READ ALSO
Почему onmousemove даёт неправильные координаты?

Почему onmousemove даёт неправильные координаты?

Добрый день, если вести курсор мыши вверх и влево, то координаты отображаются верно, если вести мышь вниз и вправо, то скрипт вставляет через...

246
Кроссбраузерность сайта

Кроссбраузерность сайта

Столкнулся с проблемой кроссбраузерности сайта, в браузере safari не отображаются изображенияПроверили с нескольких маков, проблема подтвердилась

294
Западает текст на след.блок

Западает текст на след.блок

Подскажите как исправить? когда уменьшаю, текст с верхнего блока западает на нижний( [![введите сюда описание изображения][1]][1]

225