2014-02-27 53 views
0

这可能很简单,但我没有在网上找到任何东西。通过电子邮件发送html表格并同时提交给服务器

我想要做的是制作一个带有action =“MAILTO:...”标签的html表单,这样用户就可以发送填充了数据的邮件。我知道如何做到这一点。 我还想要的是,相同的数据同时进入一个PHP脚本,将其存储在数据库中。我也知道该怎么做(脚本部分,就是这样)。

我不知道的是如果用户点击提交按钮,如何做到这一点。因此,用户点击,获得他/她可以编辑然后发送的邮件,同时表单数据将转到将数据存储在数据库中的脚本中。他们基本上可以填写他们想要的内容,或将字段留空,所以我不需要对内容进行任何检查(当然除了安全原因)。

我会很感激任何指针。

谢谢。

+1

您应该使用邮件脚本(https://github.com/PHPMailer/PHPMailer)而不是mailto - 这样您可以将数据保存到数据库,然后发送邮件。 –

+1

除了打开“收件人:”行中的目标地址外,您无法依赖用户的邮件代理。 – Pointy

+0

嗨Jay,我知道我可以做到这一点,这不是我想要做的。不管怎么说,还是要谢谢你。 – Rudy

回答

-1

从我的理解你想这两个行动发生在提交时,问题是,在表单中使用MAILTO行动是在客户端和张贴数据到PHP脚本是在服务器端,你不能有2只需在HTML中执行操作(假设您希望打开邮件并向用户显示邮件)。为了做到这一点,我建议使用JS,将表单的动作保存为MAILTO,为表单提交添加一个事件,并且在提交表单之前 - 将打开电子邮件 - 运行AJAX调用以发布数据。

您也可以使用一个动作并在提交时创建一个具有相同数据但不同动作属性的“假”新表单并提交。请记住,提交表单到页面将重新加载页面。

希望这有助于

+0

谢谢,这确实是要走的路! – Rudy

+0

很高兴听到这个帮助 – Lupin

0

您可以使用JavaScript和Ajax这样的(用jQuery)做到这一点:

<!DOCTYPE html> 
<html> 
    <head> 
     <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> 
     <script type="text/javascript"> 
     function sendData(){ 
       var request = $.ajax({ 
        url: "yourApp.php", 
        data: $("#myform").serialize(), 
        type: 'POST' 
       }); 

      request.done(function(){ 
        $("#myform").submit(); 
      }); 
     } 
     </script> 
    </head> 
    <body> 
     <form id="myform" action="MAILTO:[email protected]" method="post" enctype="text/plain"> 
      Name:<br> 
      <input type="text" name="name" value="your name"><br> 
      E-mail:<br> 
      <input type="text" name="mail" value="your email"><br> 
      Comment:<br> 
      <input type="text" name="comment" value="your comment" size="50"><br><br> 
      <input type="button" value="Send" onclick="sendData()"> 
     </form> 
    </body> 
</html> 

这样,您将您的数据发送到您的应用程序,然后通过电子邮件发送

+0

谢谢,这是我一直在寻找。像奇迹一样工作! – Rudy

相关问题