关于jquery:如何使用AJAX或JSON将数据发送到PHP电子邮件脚本

How to send data to a PHP email script with AJAX or JSON

我完全迷失在这里。 我希望在不离开我的页面的情况下发送带有PHP的电子邮件。 但我无法弄清楚如何将数据传送到PHP文件以通过电子邮件发送。 当我确实得到它时,我会迷失方向。 因此,对PHP文件应该是什么样子的任何帮助都会很棒。
这是表格。

1
2
3
4
5
6
7
<table id="dialog">
        <tr><td><input type="text" id="name" name="name" placeholder="Your Name" size="20" class="tbow" /></td></tr>
        <tr><td><input type="text" id="email" name="email" placeholder="Your Email" size="20" class="tbow" /></td></tr>
        <tr><td><input type="text" id="number" name="number" placeholder="Your Phone Number" size="20" class="tbow" /></td></tr>
        <tr><td><textarea id="message" name="message" rows="5" cols="25" class="tbow" placeholder="Your Message"></textarea></td></tr>
        <tr><td><input type="button" value="Send!" onclick="senem();" id="sender" /></td></tr>
</table>

我试过这个......

1
2
3
4
5
6
7
8
9
10
11
12
function senem(){
        var name = document.getElementById("name").value;
        var email = document.getElementById("email").value;
        var number = document.getElementById("number").value;
        var message = document.getElementById("message").value;
        $.ajax({
            type:"POST",
            url:"mmaa.php",
            data:"name=" + name +"&email=" + email +"&number=" + number ="&message=" + message,
            success: alert("It works!!!");
        });
 }


不打算作为复制粘贴工作,但应该给你自己编写的构建块:

你的javascript函数;

1
2
3
4
5
6
7
function senem() {
    jQuery.ajax({
        type:"POST",
        url:"http://location/of/script.php",
        data: { var1:"foo", var2:"bar" },
    });
}

并在PHP;

1
2
3
4
5
6
7
8
9
10
11
12
<?php
    $var1 = $_POST['var1'];
    $var2 = $_POST['var2']; //do something interesting with these

    $to ="[email protected]";
    $subject ="Wooo Email!";
    $message ="Sorry John, you're fired.";

    mail($to, $subject, $message,"From: [email protected]

"
);
?>

var1和var2的值你可能想要使用jQuery(例如$("#name")。val();)来分配客户端,你还需要在Apache旁边安装和配置一个SMTP服务器(使用Exim,和找个友好的极客来帮助你)。

PS: r n是因为SMTP与HTTP共享一些语法,这并不重要,但如果没有它们,mail命令可能无法运行。


我将从按钮中删除onlick事件并以不显眼的方式执行

1
<input type="button" value="Send!" id="sender" />

脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$(function(){

 $("#sender").click(function(){
    $.post("yourserver.php",
                          { name: $("#name").val(),
                            email:$("#email").val(),
                            number : $("#number").val(),
                            message=$("#message").val()
                          },
                         function(result){
                            //Show the result from server page to the user.
                            alert(result)
                         });    
  });
});

让您的php页面接受此值,然后在正确验证后发送电子邮件。您可以回复一些消息("例如:发送电子邮件"),这将在result变量中提供。

确保将jQuery库加载到您的页面。

阅读本页以更好地理解jQuery post如何工作http://api.jquery.com/jQuery.post/