AJAX Email не работает - PullRequest
0 голосов
/ 21 мая 2018

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

Я знаю, что это проблема JavaScript, потому что, если я использую простую версию, отправкаформы без какого-либо javascript, я получаю письмо, но сейчас не получаю.

Это мой HTML:

<form action="confirm.php" id="support" method="post">
    <input autocomplete="off" id="name" name="name" placeholder="Numele tău" required="" type="text" />
    <input autocomplete="off" id="email" name="email" placeholder="Email-ul tău" required="" type="email" />
    <input autocomplete="off" id="phone" name="phone" placeholder="Numărul tău de telefon (opțional)" type="tel" />
    <input class="button" name="submit" type="submit" value="TRIMITE" />
    <p id="success">Thanks!</p>
</form>

Это мой PHP:

<?php
    if(isset($_POST['submit'])){
        $to = "invest@es-sphere.ro";
        $name = $_POST['name'];
        $from = $_POST['email'];
        $phone = $_POST['phone'];

        $subject = "Sunt interesat de INVEST!";

        $message = $name . ", cu numărul de telefon " . $phone . " și email-ul " . $from . "este interesat de proiectul INVEST";

        $headers = "From:" . $from;
        mail($to,$subject,$message,$headers);
    }
?>

А это мой JavaScript:

$(document).ready(function () {
  $('#support').submit(function (e) {

    e.preventDefault();
    var formData = $(this).serialize();

    $.post("confirm.php", formData).done(function() {
        console.log("Success");
        $("#success").show();
    });
  });
});

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Проблема в том, что вы проверяете, было ли отправлено «submit».Но значение кнопки не отправляется с вашим существующим кодом.

Измените это

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

на

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

Или какое-то другое значение, или, возможно, лучшее, проверьте все значения.

0 голосов
/ 21 мая 2018

$(this).serialize() не соберет имя / значение кнопки отправки, использованной для отправки формы.

if(isset($_POST['submit'])){ не удастся.

Используйте другой тест (например, другое поле).), чтобы увидеть, если данные формы передаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...