我知道这是一个广泛涵盖的主题,但我一直在网上搜索,无法找到解决我特定问题的方法。
我正在尝试使用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文件?显然我还是不明白......
我仍然缺乏经验,非常感谢解决方案,甚至是朝着正确的方向努力!
如果此网站上有人已经解决了这个问题,我向您道歉。我没找到。
编辑:这应该都发生在客户端(尽可能)。这意味着电子邮件内容最终是在客户端生成的。对不起,忘了提。
答案 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函数。