我试图简单地将电子邮件发送到硬编码的电子邮件地址,作为报告错误按钮的功能。但是,我尝试输入到发送电子邮件的 php 文件中的文本不会传输,并且我的 javascript 文件中的电子邮件函数一次发送两封电子邮件。不知道为什么会发生这些。
这是我与电子邮件功能有关的所有代码。
错误页面 (HTML)
<div data-role="page" id="bug">
<div data-role="header" data-position="fixed">
<h4>Submit a bug</h4>
</div>
<div data-role="content">
<textarea name="textarea" id="textarea"></textarea>
<a href="#first" data-icon="check" data-role="button" data-inline="true" name="send" id="send">Send</a>
<script language="javascript" type="text/javascript">
$("#send").click(function(){
email();
});
function clearText()
{
$('textarea#textarea').val('');
}
</script>
</div><!-- /content -->
</di> <!-- /bug -->
当用户点击“报告错误按钮”时,会调用上述页面,如下所示:
<a href='#bug' data-rel="dialog" onclick="clearText()" data-close-btn="left" data-role="button" data-inline="true">Report bug</a>
带有电子邮件功能的 Javascript 文件:
function email(){
var name = "Joey";
var email = "example@gmail.com"
var vardata = $("textarea").val();
$.ajax({ type: "POST", url: "email.php", data: vardata, success: function() {
alert("Your bug report was sent!");
}
});
return false;
}
和我的PHP文件称为:
<?php
$message = $_POST["vardata"];
mail("example@gmail.com", "Mystery person", $message);
?>
如果 $message 字段是硬编码的,我可以很好地在电子邮件中获取文本,但它无法从 vardata 标记中获取它。此外,它会提交两次,您可以在此处看到。只需点击报告错误按钮并点击发送。