jQuery / AJAX发送自动生成的电子邮件没有表单,留在页面上

时间:2013-01-30 13:45:01

标签: php ajax email jquery

我知道这是一个广泛涵盖的主题,但我一直在网上搜索,无法找到解决我特定问题的方法。

我正在尝试使用jQuery / AJAX(如标题中所述):

我不想要任何用户可以填写的表格。 我只想要一个按钮(一些HTML元素),当点击时,会将自动生成的邮件发送到预定义的地址。 内容,主题或其他任何内容都不需要由观众/用户“填写”。

只有一个变量(一个脚本会插入正确的值)应该放在电子邮件内容的某个位置。

点击按钮,邮件应该发送,按钮应该被“谢谢......” - 消息,这就是IT! 没有重定向到另一个页面或诸如此类的东西。

我发现到目前为止可能有用:

$.ajax({
       type: "...",
       url: "...",
       cache: ...,
       contentType: "...",
       data: "{ 'body':'"  + myMsg + "'," +
                 "'to': '" + myAddr + "'," +
                 "'from': 'AUTOMAILER'," +
                 "'subject': " + mySubject + mySpecVar + "'" +
             "}",
       dataType: "...",
       complete: function (transport) {  if (transport.status == 200) $("#myButtonContainer").html("Success"); else alert("Please try again later"); }
   });

假设我的HTML是:

<p id="notify">Notify!</p>

我的JS部分将开始这样的事情:

<script>
    $(document).ready(function(){
        $("#notify").click(function(){

            // THE JQUERY/AJAX STUFF HERE?

        });
    });
</script>

我认为我至少还需要一些.php文件?显然我还是不明白......

我仍然缺乏经验,非常感谢解决方案,甚至是朝着正确的方向努力!

如果此网站上有人已经解决了这个问题,我向您道歉。我没找到。

编辑:这应该都发生在客户端(尽可能)。这意味着电子邮件内容最终是在客户端生成的。对不起,忘了提。

3 个答案:

答案 0 :(得分:1)

你忘了提一些重要的事情。生成电子邮件内容的“脚本”是客户端还是服务器端?

您只需要点击元素:

<button type="button" onclick="doStuff()">Send</button>

ajax方法:

<script>
function doStuff()
{
    //var data =... ANY DATA YOU MIGHT NEED
    $.ajax({
       type: "POST",
       url: "sample.php",
       data: data,
       dataType: "text"
    });
}
//ADD here some jquery to change the button text
</script>

然后您可以轻松找到发送电子邮件的PHP脚本。如果电子邮件地址永不改变,您可以对其进行硬编码

答案 1 :(得分:0)

您的$ .ajax方法很好,但您需要一个最终发送邮件的服务器操作(在“url”中设置)。浏览器无法单独完成。

答案 2 :(得分:0)

电子邮件发送完成服务器端即php。发布到email.php文件,然后发送电子邮件。如果你需要进行回调,请确保在php中也使用json函数。

相关问题