如何解决在php中发送邮件时,警报不起作用
| 我已经开发了一个简单的php应用程序。该应用程序包含一个html文件和一个php文件。我正在做的是当用户选择两个日期并输入他/她的电子邮件地址时,我正在调用我的php文件,该文件会将邮件发送到输入的电子邮件ID。 它正确发送邮件。但是问题是它没有向我显示是否发送邮件的状态。我正在使用警报。 这是我的html文件:<html>
<link rel=\"stylesheet\" href=\"ui.all.css\" type=\"text/css\" media=\"screen\" />
</head>
<body>
<label>Leave Application</label><br/>
From <input id=\"date\" type=\"text\" name=\"ndate\" /><div id=\"d1\"></div><br/>
To <input id=\"date1\" type=\"text\" name=\"ndate1\" /><div id=\"d2\"></div><br/>
Email To <input type=\"text\" id=\"UserEmail\" name=\"userEmail\" onkeyup=\"\"/><br/>
<input type=\"submit\" id=\"btn_submit\" value=\"Send\" onclick=\"\" />
<span id=\"d\"></span>
<script type=\"text/javascript\" src=\"jquery-1.3.2.min.js\"></script>
<script type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jqueryui/1.5.3/jquery-ui.min.js\"></script>
<script type=\"text/javascript\">
$(document).ready(function(){
$(\"#date\").datepicker({ showOn: \'button\',buttonImageOnly: true,buttonImage: \'Images/icon_cal.png\' });
$(\"#date1\").datepicker({ showOn: \'button\',buttonImage: \'Images/icon_cal.png\' });
});
$(\"#btn_submit\").click(function(event){
var hasError = false;
var dt1=$(\"#date\").val();
var dt2=$(\"#date1\").val();
var em=$(\"#UserEmail\").val();
$(\".error\").hide();
if(dt1 == \'\')
{
$(\"#d1\").before(\'<span class=\"error\"><font color=\"red\">This Field Must not be empty.</font></span>\');
hasError = true;
}
if(dt2 == \'\')
{
$(\"#d2\").before(\'<span class=\"error\"><font color=\"red\">This Field Must not be empty.</font></span>\');
hasError = true;
}
var emailReg = /^([\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4})?$/;
var emailaddressVal = $(\"#UserEmail\").val();
if(emailaddressVal == \'\') {
$(\"#UserEmail\").after(\'<span class=\"error\"><font color=\"red\">Please enter your email address.</font></span>\');
hasError = true;
}
else if(!emailReg.test(emailaddressVal)) {
$(\"#UserEmail\").after(\'<span class=\"error\"><font color=\"red\">Enter a valid email address.</font></span>\');
hasError = true;
}
if(hasError == true) { return false; }
jQuery.ajax({
type: \"GET\",url: \"http://www.myserver.com/sent_mail.php\",async: false,data: \"dt1=\"+dt1+\"&dt2=\"+dt2+\"&email=\"+em,success: function(msg){
alert(msg);
}
});
});
</script>
</body>
</html>
这是我的php文件:
<?php
`extract($_GET);`
$msg=\"Respected Sir,\\n\\n\\tI will not be able to come to office from \".$dt1.\" to \".$dt2.\". Please grant my leave\";
$pcto=$email;
$pcsubject = \'Leave Application\';
$pcmessage = $msg;
$pcheaders = \'From:abc@abc.com\'.\"\\r\\n\" .
\'Reply-To: abc@abc.com\'.\"\\r\\n\" .
\'X-Mailer: PHP/\' . phpversion();
$isdone=mail($pcto,$pcsubject,$pcmessage,$pcheaders);
if($isdone)
echo \"Mail Sent\";
else
echo \"Please Try Again\";
?>
解决方法
您确定脚本返回正确的HTTP状态(因此实际上调用了
success
函数)吗?尝试添加
error: function(){
alert(\'Error\');
}
到ajax对象以查找(或使用FireBug)。
, 我会这样写if语句
if(mail($pcto,$pcsubject,$pcmessage,$pcheaders)):
echo \"Mail Sent\";
else:
echo \"Please Try Again\";
endif;
无论如何,您是否尝试仅在该文件中回显某些内容?
只需在文件顶部添加这样的内容
echo \"this is returning somethin\";
exit;
查看是否返回此值,如果不是,则问题出在ajax请求中。
另外,我会使用Firebug,所以请执行以下操作(请确保已打开并启用了Firebug控制台),而不是发出警报。
console.log(msg);
, 现在不知道相同的代码正在为我运行...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。