2012-04-22 72 views
2

我完全迷失在这里。我想用PHP发送邮件而不离开我的页面。但我无法弄清楚如何获取数据到PHP文件来发送电子邮件。当我在那里得到它时,我会迷失方向。所以PHP文件应该看起来像什么样的帮助也会很好。 这里是表格。如何使用AJAX或JSON将数据发送到PHP电子邮件脚本

<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> 

我已经试过这...

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!!!"); 
     }); 
} 
+0

[你尝试过什么?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – PeeHaa 2012-04-22 00:59:28

+0

函数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 =” +消息, 成功:alert(“It works !!!”); }); } – 2012-04-22 01:02:04

+0

请使用此代码更新您的问题以获取可读性:-) – PeeHaa 2012-04-22 01:02:40

回答

4

不适合作为拷贝和粘贴的工作,但应该给你的积木自己编写:

您的JavaScript功能;

function senem() { 
    jQuery.ajax({ 
     type: "POST", 
     url: "http://location/of/script.php", 
     data: { var1: "foo", var2: "bar" }, 
    }); 
} 

和在php中;

<?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]\r\n"); 
?> 

和该VAR1值VAR2你可能会想要分配客户方,使用jQuery(如$(“#名字”)VAL();),你还需要安装和配置SMTP服务器与Apache一起使用(使用Exim,并找到一个友好的极客来帮助你)。

PS:\ r \ n是因为SMTP与HTTP共享一些语法,这并不重要,但是如果没有它们,邮件命令可能不起作用。

+0

我给它一个射击。谢谢! – 2012-04-22 01:04:40

+1

哇,非常感谢。这工作完美! – 2012-04-22 01:13:02

+0

不客气。 – lynks 2012-04-22 01:20:18

1

我将删除按钮的点击数事件并做到这一点的unobtrusive方式

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

脚本

$(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的岗位如何工作http://api.jquery.com/jQuery.post/

+0

@RepWhoringPeeHaa:从标记中分离行为。 http://en.wikipedia.org/wiki/Unobtrusive_JavaScript – Shyju 2012-04-22 01:09:09

+0

Eeeek什么白痴想出了功能和演示文稿分离的术语;-) – PeeHaa 2012-04-22 01:10:33