无法让我的联系表格工作

时间:2014-02-13 10:05:57

标签: javascript php ajax forms

我对创建联系表单有疑问。目前我有一个表单和一些PHP代码。但每次当我点击提交按钮时,我都会被重定向到php网站,而不是发送实际的邮件。

这是我的代码:

HTML表单:

<form action="send.php" method="post" target="_new">
  <h1>Name:</h1> <br><input type="text" name="name" class="name"><br>
  <h1>E-mail:</h1> <br><input type="text" name="email" class="email"><br>
  <h1>Message:</h1> <br><textarea rows="20" cols="60" width="450px" height="210px" name="message"></textarea><br>
  <input type="submit" name="submit" value="submit" class="submit">
</form>

Php页面:

<?php

$recipient = "myemail@mail.com";
if (isset($_POST['email'])){
    $mail = $_POST['email'];
    $name = $_POST['name'];
    $message = $_POST['message'];
    mail("$recipient", $name, $message);
}
header('Location: send.php');
?>

我在互联网上看到有可能使用Ajax和javascript?但我对AJAX不太熟悉。所以帮助真的很感激! :d

此表单唯一要做的就是在点击提交按钮的同时,在不打开邮件程序的情况下向我的电子邮件帐户发送电子邮件。

谢谢!

3 个答案:

答案 0 :(得分:0)

当您单击提交按钮时,在将邮件功能irt重定向到send.php后,操作将转到send.php。所以自我循环开始了。你需要改变它  将页面重定向到您的表单页面。即,

header('Location: send.php'); //change it !!

此外,您需要mail server从本地计算机发送邮件,否则您需要托管该项目。

如果您想使用AJAX发送邮件,请执行以下代码:

<script>
$('form').submit(function(){
    $.ajax({
        url:'send.php',
        data:$('form').serialize(),
        success:function(response){
            alert(response);
        }
    });
    return false;
});
</script>

然后 send.php 就像

$recipient = "myemail@mail.com";
if (isset($_POST['email'])){
    $mail = $_POST['email'];
    $name = $_POST['name'];
    $message = $_POST['message'];
    if(mail($recipient, $name, $message)){
        echo 'Mail sent';
    }
    else{
         echo 'Mail cant sent';
    }
}

答案 1 :(得分:0)

请删除$收件人中的“”  邮件($ recipient,$ name,$ message);

答案 2 :(得分:0)

<form  method="post">
                            <h1>Name:</h1> <br><input type="text" id="name" name="name" class="name"><br>
                            <h1>E-mail:</h1> <br><input type="text" id="email" name="email" class="email"><br>
                            <h1>Message:</h1> <br><textarea id="msg" rows="20" cols="60" width="450px" height="210px" name="message"></textarea><br>
                            <input type="submit" name="submit" value="submit" class="submit">
                        </form>
<script>
$.ajax({
    type: "post",
    url: "send.php",
    data: {name: $('#name').val(), email: $('#email').val(), message: $('#msg').val()},
    success: function(result){
        alert("Mail send!");
    }
});
</script>

你的php代码是相同的,但你不需要标题。