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页面接受此值,然后在正确验证后发送电子邮件。您可以回复一些消息("例如:发送电子邮件"),这将在
确保将jQuery库加载到您的页面。
阅读本页以更好地理解jQuery post如何工作http://api.jquery.com/jQuery.post/