Не работает отправка формы

345
24 ноября 2016, 10:00

Здравствуйте, почему-то не работает отправка формы на почты, помогите разобраться в чем дело

$("#callback-form").submit(function() { //Change 
  var th = $(this); 
  $.ajax({ 
    type: "POST", 
    url: "mail.php", //Change 
    data: th.serialize() 
  }).done(function() { 
    alert("все работает"); 
    setTimeout(function() { 
      // Done Functions 
      th.trigger("reset"); 
    }, 1000); 
  }); 
  return false; 
});
<form id="callback-form"> 
  <h2>Оставьте свой номер и мы Вам перезвоним!</h2> 
  <!-- Hidden Required Fields --> 
  <input class="textbox" type="hidden" name="project_name" value="MyLending"> 
  <input class="textbox" type="hidden" name="admin_email" value="147qq147@i.ua"> 
  <input class="textbox" type="hidden" name="form_subject" value="Новая заявка"> 
  <!-- END Hidden Required Fields --> 
 
  <input class="textbox" type="text" name="Name" placeholder="Введите имя" required> 
  <br> 
  <input class="textbox" type="tel" name="Phone" placeholder="Введите Ваш номер телефона" required> 
  <br> 
  <button class="form-button">Перезвоните мне</button> 
 
</form> 
 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
И вот php-код, который должен отправлять данные на почту

<?php
$method = $_SERVER['REQUEST_METHOD'];
//Script Foreach
$c = true;
if ($method === 'POST') {
    $project_name = trim($_POST["project_name"]);
    $admin_email  = trim($_POST["admin_email"]);
    $form_subject = trim($_POST["form_subject"]);
    foreach ($_POST as $key => $value) {
        if ($value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject") {
            $message .= "
            " . (($c = !$c) ? '<tr>' : '<tr style="background-color: #f8f8f8;">') . "
            <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td>
            <td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td>
        </tr>
            ";
        }
    }
} else if ($method === 'GET') {
    $project_name = trim($_GET["project_name"]);
    $admin_email  = trim($_GET["admin_email"]);
    $form_subject = trim($_GET["form_subject"]);
    foreach ($_GET as $key => $value) {
        if ($value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject") {
            $message .= "
            " . (($c = !$c) ? '<tr>' : '<tr style="background-color: #f8f8f8;">') . "
            <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td>
            <td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td>
        </tr>
        ";
        }
    }
}
$message = "<table style='width: 100%;'>$message</table>";
function adopt($text)
{
    return '=?UTF-8?B?' . Base64_encode($text) . '?=';
}
$headers = "MIME-Version: 1.0" . PHP_EOL . "Content-Type: text/html; charset=utf-8" . PHP_EOL . 'From: ' . adopt($project_name) . ' <' . $admin_email . '>' . PHP_EOL . 'Reply-To: ' . $admin_email . '' . PHP_EOL;
mail($admin_email, adopt($form_subject), $message, $headers);
Answer 1

У вас на кнопку отправки не повешено событие submit. Добавьте

<button type="submit" class="form-button">Перезвоните мне</button>
READ ALSO
Проверка символов и сокрытие блоков

Проверка символов и сокрытие блоков

Можно ли реализовать подобную проверку? Имеем div в котором будут меняться значения, например, на одной странице выводится 123, на второй 4, на третьей...

332
Проверка введенных данных в поле prompt

Проверка введенных данных в поле prompt

Я новичок и честно говоря, просто не нашел четкого ответа в гугле. Что я написал не так? Хотелось бы, что бы выполнялось условие при введении...

488
JQuery открытие меню

JQuery открытие меню

Имеется вот такой кодик.

447
Навигация с помощью jQuery

Навигация с помощью jQuery

На странице имеется блок <div id="menu"> и <div id="content">. Содержимое блока content (page1.

418