簡體   English   中英

AJAX電子郵件發送不起作用

[英]AJAX Email send doesn't work

好的,所以我想提交一個表單而不重新加載頁面,這可能是一個老話題。 但是,我設法找到了解決方案,但是它根本不起作用,我也不知道自己缺少什么。

我知道這是一個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();
    });
  });
});

問題是您正在檢查是否已發送“提交”。 但是按鈕值不會與您現有的代碼一起發送。

改變這個

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

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

或者是其他某個值,或者可能是最好的,請檢查所有值。

$(this).serialize()將不會收集用於提交表單的提交按鈕的名稱/值。

if(isset($_POST['submit'])){將因此失敗。

使用其他測試(例如其他字段)來查看是否正在提交表單數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM