не отправляется форма через ajax

99
04 июля 2021, 12:20

При клике на кнопку,всплывает модалька бутстрапа с формой, после отправки формы появляется модалька "Спасибо, бла бла". без ajax форма работает, почитай похожие вопросы,не смог найти решение, не могу сообразить

<div class="modal fade" id="exchangeblock" tabindex="-1" role="dialog" aria-labelledby="exchangeblock" aria-hidden="true">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-body">
                <h2>Заполните форму, чтобы узнать возможен ли обмен</h2>
                <form action="<?php echo esc_url(get_template_directory_uri()); ?>/common2.php" method="post">
                    <input type="text" name="name" required placeholder="Введите ваше ФИО">
                    <input type="text" name="city" required placeholder="Ваш город">
                    <input type="text" name="phone" required placeholder="Ваш телефон">
                    <select name="model" required>
                        <option value="">Выберите вашу модель</option>
                        <option value="iqos2.4">Iqos 2.4</option>
                        <option value="iqos2.4plus">Iqos 2.4 Plus и Iqos 2.4(Protect Plus)</option>
                        <option value="iqos3">Iqos 3.0</option>
                        <option value="iqosmulti">Iqos Multi</option>
                    </select>
                    <input type="text" name="serial" required placeholder="Серийный номер вашего устройства(под колпачком)">
                    <div class="checkbox">
                        <label>
                            Нажимая на кнопку «Отправить», вы соглашаетесь на обработку персональных данных в соответствии с <a href="#" class="checkbox-label" data-target="#agreement" data-toggle="modal">пользовательским соглашением</a>
                        </label>
                        </div>
                    <input type="submit" value="Отправить" name="exchangesubmit">
                </form>
            </div>
        </div>
    </div>
</div>
<?php

if(isset($_POST['exchangesubmit'])){
    // $data = (object) $_POST;
    $to = "zarubaxa@gmail.com"; // Здесь нужно написать e-mail, куда будут приходить письма
    $fio = $_POST['name'];
    $city = $_POST['city'];
    $phone = $_POST['phone'];
    $model = $_POST['model'];
    $subject = "Форма отправки сообщений с сайта";
    $message = $fio . "\n\n" . $city . "\n\n" . $phone . "\n\n" . $model;
    $headers  = 'MIME-Version: 1.0' . "\r\n"; // заголовок соответствует формату плюс символ перевода строки
    $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; // указывает на тип посылаемого контента
    mail($to,$subject,$message,$headers);
    // header("Location: /");
}
$("#exchangeblock form").submit(function () {
        var th = $(this);
        var msg = th.serialize();
        $.ajax({
            type: "POST",
            url: "https://q-mania.ru/wp-content/themes/wp13/common2.php", //Change
            data: msg,
            success: function(){
                $("#exchangeblock").modal('hide');
                $("#exchangeblockafter").modal('show');
            }
        });
        return false;
    });
Answer 1

Не проверяйте

if(isset($_POST['exchangesubmit'])){

потому что ajax-ом name=value нажатой кнопки не отправляется.

Или проверяйте, но добавьте:

$("#exchangeblock form").submit(function () {
  var th = $(this);
  var submitInput = $('<input type="text" value="Отправить" name="exchangesubmit">');
  th.append(submitInput);
  var msg = th.serialize();
  submitInput.remove();
  $.ajax({
    ...
READ ALSO
Не записывает данные в БД

Не записывает данные в БД

Собственно, пришёл с таким вопросом, почему не проходят данные в БД? Как ни пробовал, убирал одинарные кавычки, обычные, ставил даже там где...

89
RedbeanPHP, sql

RedbeanPHP, sql

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

90
Большой запрос в MySQL (php)

Большой запрос в MySQL (php)

Есть группа в ВКонтакте, я получаю список всех участников группы и записываю их идентификаторы в базу данных

72
Функция для фильтрации массива

Функция для фильтрации массива

Есть ли такая встроенная функция в php, которая примет в аргументы набор ключей и отфильтрует массив, отбросив все значения которые не совпадают...

88