Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.12.2019, 08:52
Новичок на форуме
Отправить личное сообщение для artem99357 Посмотреть профиль Найти все сообщения от artem99357
 
Регистрация: 30.12.2019
Сообщений: 6

Передать в контактную форму значение <button>
Здравствуйте.
Есть 10 кнопок, при нажании на каждую всплывает окно с формой, после заполнения, значения отправляются на почту.
Для всех этих кнопок сделана одна форма, то-есть, на какую бы кнопку не нажал, передаётся один и тот же текст.
Можно ли как-то сделать, чтобы при нажатии на каждую кнопку, автоматически добавлялось своё значение?

Например:

<button data-toggle="modal" data-target="#feedback-form" type="submit" значение="1">Отправить</button>
На почту приходит заполненная форма:
Имя
Номер
И данное значение: значение="1"

<button data-toggle="modal" data-target="#feedback-form" type="submit" значение="2">Отправить</button>
На почту приходит заполненная форма:
Имя
Номер
И данное значение: значение="2"

Можно сделать для каждой кнопки свою форму, но так не хотелось бы, много ненужного текста получается. По этому и вопрос, по средствам JS возможно реализовать всё через одну форму.


HTML

<form class="form-header" id="form" method="post" name="form">
  <div class="form-group">
    <input class="form-control input-lg" name="name" id="name" type="text" placeholder="Ваше имя *" required>
    <input class="form-control input-lg" name="phone" id="phone" type="text" placeholder="Телефон для связи *" required>
  </div>
  <div class="form-group">
    <button class="btn"><span class="text-button">Отправить</span></button>
  </div>
</form>



PHP

$recepient = "Почта";
$siteName = "Сайт";
 
$name = trim($_POST["name"]);
$phone = trim($_POST["phone"]);
$message = "Имя: $name \nТелефон: $phone";
 
$pagetitle = "Заявка с сайта \"$siteName\"";
mail($recepient, $pagetitle, $message, "Content-type: text/plain; charset=\"utf-8\"\n From: $recepient");
 
?>



JS

$(document).ready(function() {
    $('form').submit(function() {
        var formID = $(this).attr('id');
        var formNm = $('#' + formID);
        $.ajax({
            type: 'POST',
            url: 'mail.php',
            data: formNm.serialize(),
            success: function(data) {
                $('.thank-you').fadeIn();
                $(this).find('input').val('');
                $('#form').trigger('reset');
            }
        });
        return false;
    });
});
$('.close-thank').click(function() {
    $('.thank-you').fadeOut();
});
$(document).mouseup(function(e) {
    var popup = $('.popup');
    if (e.target != popup[0] && popup.has(e.target).length === 0) {
        $('.thank-you').fadeOut();
    }
});
$(function($) {
    $('[name="phone"]').mask("+7(999) 999-9999");
});
Ответить с цитированием
  #2 (permalink)  
Старый 30.12.2019, 10:17
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от artem99357
Можно ли как-то сделать, чтобы при нажатии на каждую кнопку, автоматически добавлялось своё значение?
Как вариант, в форму добавить скрытое поле и в него писать какое-то значение "из кнопки"...
Ответить с цитированием
  #3 (permalink)  
Старый 30.12.2019, 10:54
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

$('form').submit(function(event) {
тогда
event.preventDefault(); - вместо return false;
event.originalEvent.explicitOriginalTarget - это кнопка, name ее имя, value значение.
Ответить с цитированием
  #4 (permalink)  
Старый 30.12.2019, 14:52
Новичок на форуме
Отправить личное сообщение для artem99357 Посмотреть профиль Найти все сообщения от artem99357
 
Регистрация: 30.12.2019
Сообщений: 6

Сообщение от ksa Посмотреть сообщение
Как вариант, в форму добавить скрытое поле и в него писать какое-то значение "из кнопки"...
Спасибо
Ответить с цитированием
  #5 (permalink)  
Старый 30.12.2019, 14:53
Новичок на форуме
Отправить личное сообщение для artem99357 Посмотреть профиль Найти все сообщения от artem99357
 
Регистрация: 30.12.2019
Сообщений: 6

Сообщение от laimas Посмотреть сообщение
$('form').submit(function(event) {
тогда
event.preventDefault(); - вместо return false;
event.originalEvent.explicitOriginalTarget - это кнопка, name ее имя, value значение.
Спасибо
Ответить с цитированием
  #6 (permalink)  
Старый 30.12.2019, 15:17
Новичок на форуме
Отправить личное сообщение для artem99357 Посмотреть профиль Найти все сообщения от artem99357
 
Регистрация: 30.12.2019
Сообщений: 6

Может пригодится, Сделал так:

Добавил id кнопкам
<div class="buttons-parent">
<button data-toggle="modal" data-target="#feedback-form" type="submit" id="button1">Отправить</button>

<button data-toggle="modal" data-target="#feedback-form" type="submit" id="button2">Отправить</button>

<button data-toggle="modal" data-target="#feedback-form" type="submit" id="button3">Отправить</button>
</div>


В саму форму добавил скрытое поле
<input type="hidden" name="but" id="input-type-hide" value="here">


<form class="form-header" id="form" method="post" name="form">
<div class="form-group">
<input type="hidden" name="but" id="input-type-hide" value="here">
<input class="form-control input-lg" name="name" id="name" type="text" placeholder="Ваше имя *" required>
<input class="form-control input-lg" name="phone" id="phone" type="text" placeholder="Телефон для связи *" required>
</div>
<div class="form-group">
<button class="btn"><span class="text-button">Отправить</span></button>
</div>
</form>


В PHP добавил имя скрытого поля
$but = trim($_POST["but"]);


$recepient = "Почта";
$siteName = "Сайт";

$name = trim($_POST["name"]);
$phone = trim($_POST["phone"]);
$but = trim($_POST["but"]);

$message = "Имя: $name \nТелефон: $phone \nКнопка: $but";
$pagetitle = "Заявка с сайта \"$siteName\"";
mail($recepient, $pagetitle, $message, "Content-type: text/plain; charset=\"utf-8\"\n From: $recepient");
?>



И в JS добавил

$(document).ready(function (){
    // 1 кнопка
    $('.buttons-parent').on('click', '#button1', function() {
        $('#input-type-hide').val('Назание 1 кнопки');
    });

    // 2 кнопка
    $('.buttons-parent').on('click', '#button2', function() {
        $('#input-type-hide').val('Назание 2 кнопки');
    });
    
    // 3 кнопка
    $('.buttons-parent').on('click', '#button3', function() {
        $('#input-type-hide').val('Назание 3 кнопки');
    });
});



не знаю, правильно ли всё, но работает.
Ответить с цитированием
  #7 (permalink)  
Старый 30.12.2019, 16:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от artem99357
не знаю, правильно ли всё, но работает
Просто создаете лишнее и не нужное.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передать значение из AddEventListener в переменную miknn Events/DOM/Window 4 27.06.2018 08:57
Вставить контактную форму в jquery.prettyPhoto.js maximamus Элементы интерфейса 16 15.01.2016 17:29
Как передать товар из таблицы в форму всплывающего окна? sprint007 Элементы интерфейса 3 03.12.2014 16:04
Передать значение переменной из Js в Php 12345kro Общие вопросы Javascript 2 05.12.2012 11:35
Можно ли передать файл из формы в форму? vuler Общие вопросы Javascript 3 01.03.2012 12:42